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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | 8x 8x 8x 8x 8x 8x 8x 8x | import { setResourceObjectsForModule } from './setResourceObjectsForModule' import { hasOwn } from '../../shared/utils' import { ResourceProxy } from '../../api/ResourceProxy' import { ModuleBuilder } from '../ModuleBuilder' function isAllowedRelatedModule (relatedModule, currentMethod) { return relatedModule !== null && relatedModule.state.options.absoluteMethods.includes(currentMethod) } /** * Check if a module is registered in the store * * @param {Vuex} store * @param {String} moduleName */ function isMissingModule (store, moduleName) { return Object.keys(store._modules.root._children).indexOf(moduleName) < 0 } /** * Register a standalone module to the store. * * @param {ResourcefulApi} api * @param {String} moduleName */ function registerMissingModule (api, moduleName) { let resourceProxy = api[moduleName] if (!resourceProxy) { resourceProxy = new ResourceProxy() } const builder = new ModuleBuilder( api, moduleName, resourceProxy, { standalone: true } ) api.store.registerModule( moduleName, builder.build() ) } /** * Process the (normalized) data part of a response * * @param {Object} vuexFns * @param {ResourcefulApi} api * @param {String} currentModule name of the current storeModule * @param {Object} data payload from request * @param {String} currentMethod default = '' * @param {Object} relatedModule storeModule */ export function processResponseData ( vuexFns, api, currentModule, data, currentMethod = '', relatedModule = null ) { for (const itemType in data) { let registeredModule = itemType Iif (isAllowedRelatedModule(relatedModule, currentMethod)) { registeredModule = currentModule } else Iif (!hasOwn(data, itemType)) { // TODO: add error here, invalid resource format continue } Iif (isMissingModule(api.store, registeredModule)) { registerMissingModule(api, registeredModule) } setResourceObjectsForModule( vuexFns, currentModule, registeredModule, data[itemType] ) } } |