vuex-xhr-state
Version:
Use Vuex to manage the state of you're ajax calls.
36 lines (35 loc) • 1.15 kB
JavaScript
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;
}