UNPKG

vuex-xhr-state

Version:

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

37 lines (36 loc) 1.82 kB
import { MUTATIONS } from './keys'; import initialState from './state'; export default (function (options) { var _a; return _a = {}, _a[MUTATIONS.REQUEST] = function (state, payload) { var _a; state.PENDING = Object.assign({}, state.PENDING, (_a = {}, _a[payload.key] = true, _a)); }, _a[MUTATIONS.RECEIVED] = function (state, payload) { var _a, _b, _c, _d; state.PENDING = Object.assign({}, state.PENDING, (_a = {}, _a[payload.key] = false, _a)); if (options.cache) { state.ERROR = Object.assign({}, state.ERROR, (_b = {}, _b[payload.key] = false, _b)); state.FETCHED = Object.assign({}, state.FETCHED, (_c = {}, _c[payload.key] = true, _c)); state.RESPONSE = Object.assign({}, state.RESPONSE, (_d = {}, _d[payload.key] = payload.response, _d)); } }, _a[MUTATIONS.FAILED] = function (state, payload) { var _a, _b, _c, _d; state.PENDING = Object.assign({}, state.PENDING, (_a = {}, _a[payload.key] = false, _a)); if (options.cache) { state.ERROR = Object.assign({}, state.ERROR, (_b = {}, _b[payload.key] = true, _b)); state.FETCHED = Object.assign({}, state.FETCHED, (_c = {}, _c[payload.key] = false, _c)); state.RESPONSE = Object.assign({}, state.RESPONSE, (_d = {}, _d[payload.key] = payload.response, _d)); } }, _a[MUTATIONS.INVALIDATE] = function (state, payload) { var _a; state.FETCHED = Object.assign({}, state.FETCHED, (_a = {}, _a[payload.key] = false, _a)); }, _a[MUTATIONS.RESET] = function (state) { Object.assign(state, initialState(options)); }, _a; });