All files / init initJsonApiPlugin.js

0% Statements 0/22
0% Branches 0/12
0% Functions 0/3
0% Lines 0/22

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                                                                                                                 
import { ResourcefulApi } from '../api/ResourcefulApi'
import { checkConfigProperty } from '../shared/utils'
import { createPresetModule } from '../module/preset/createPresetModule'
 
/**
 * Initialize the API Plugin
 *
 * May receive a configuration object but at least
 * needs a configured router.
 *
 * @param {Router|Object} config or router
 */
export function initJsonApiPlugin (config) {
  const api = new ResourcefulApi()
 
  if (checkConfigProperty(config, 'router')) {
    api.setupResourcefulRequests(config.router)
  }
 
  if (checkConfigProperty(config, 'baseUrl')) {
    api.setBaseUrl(config.baseUrl)
  }
 
  if (checkConfigProperty(config, 'successCallbacks', false)) {
    api.setSuccessCallbacks(config.successCallbacks)
  }
 
  if (checkConfigProperty(config, 'errorCallbacks', false)) {
    api.setErrorCallbacks(config.errorCallbacks)
  }
 
  let apiModulesToRegister = []
  if (checkConfigProperty(config, 'apiModules', false)) {
    apiModulesToRegister = config.apiModules
  }
 
  if (checkConfigProperty(config, 'headers', false)) {
    api.addHeaders(config.headers)
  }
 
  return store => {
    api.setStore(store)
    api.setupApiModules(apiModulesToRegister)
 
    store.api = api
 
    store.getAvailableApiModules = api.getAvailableApiModules
    store.registerApiModule = api.registerApiModule
 
    store.createPresetModule = createPresetModule(store, api)
 
    store.subscribe((mutation, state) => {
      // console.dir(mutation, state)
    })
  }
}