All files / module/resource getRelationship.js

11.11% Statements 1/9
0% Branches 0/2
33.33% Functions 1/3
11.11% Lines 1/9

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            4x                                      
/**
*
* @param {Vuex.Store} store
* @param {Object} relatedObject
*/
export function getRelationship (store, relatedObject, config) {
  return new Proxy(() => {}, {
    apply (target, thisArg, argArray) {
      const moduleName = relatedObject.data.type
      const relatedModule = store.state[moduleName]
 
      if (config.isToMany) {
        const [requestedId] = argArray
 
        try {
          return relatedModule.items[requestedId]
        } catch (e) {
          throw new Error(`Related object ${relatedObject.id} not found in ${moduleName}`)
        }
      }
 
      return relatedModule.items[relatedObject.data.id]
    }
  })
}