UNPKG

vuex-xhr-state

Version:

Use Vuex to manage the state of you're ajax calls.

36 lines (35 loc) 1.15 kB
import { mapGetters } from 'vuex'; // tslint:disable-next-line: no-any export function mapXhrGetters(payload, getters) { if (typeof getters === 'undefined') { getters = payload; payload = undefined; } var vuexGetters = mapGettersToVuexGetters(getters); return mapVuexGettersToXhrGetters(vuexGetters, payload, getters); } function mapGettersToVuexGetters(xhrGetters) { var vueXGetters = {}; for (var index in xhrGetters) { if (xhrGetters.hasOwnProperty(index)) { vueXGetters[index] = xhrGetters[index].key; } } return mapGetters(vueXGetters); } function mapVuexGettersToXhrGetters(vuexGetters, payload, getters) { var result = {}; var _loop_1 = function (key) { if (vuexGetters.hasOwnProperty(key)) { result[key] = function () { vuexGetters[key] = vuexGetters[key].bind(this); payload = (getters[key].payload ? getters[key].payload : payload); return vuexGetters[key]()(payload); }; } }; for (var key in vuexGetters) { _loop_1(key); } return result; }