Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import { ModuleBuilder } from '../ModuleBuilder' import { checkConfigProperty, hasOwn } from '../../shared/utils' import { Performance } from '../../shared/Performance' import { ResourceProxy } from '../../api/ResourceProxy' export function createPresetModule (store, api) { return new Proxy(() => { }, { apply (target, thisArg, [name, config]) { let baseModule if (checkConfigProperty(config, 'base')) { baseModule = config.base } // if there is no baseModule, create it if (!hasOwn(store.state, baseModule)) { registerBaseModule(store, api, baseModule) } let resourceProxy = api[baseModule] if (!resourceProxy) { resourceProxy = new ResourceProxy() } Performance.mark('module_register_preset_start') const builder = new ModuleBuilder(api, baseModule, resourceProxy, { presetOptions: { defaultQuery: checkConfigProperty(config, 'defaultQuery', false) ? config.defaultQuery : {} } }, name) store.registerModule([baseModule, name], builder.build()) Performance.mark('module_register_preset_end') Performance.measure( `Register preset ${name} for base ${baseModule}`, 'module_register_preset_start', 'module_register_preset_end' ) } }) } /** * * @param {Vuex.Store} store * @param {ResourcefulApi} api * @param {String} moduleName */ function registerBaseModule (store, api, moduleName) { if (typeof moduleName !== 'string') { throw new Error('Module name must be string') } let resourceProxy = api[moduleName] if (!resourceProxy) { resourceProxy = new ResourceProxy() } const moduleBuilder = new ModuleBuilder(api, moduleName, resourceProxy) store.registerModule(moduleName, moduleBuilder.build()) } |