@owlsdepartment/vuex-typed
Version:
Package for writing typed Vuex store with component helpers
44 lines (43 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getModuleImports = exports.getModule = void 0;
var getState_1 = require("./getState");
var getGetters_1 = require("./getGetters");
var getMutations_1 = require("./getMutations");
var getActions_1 = require("./getActions");
var fields = ['state', 'getters', 'mutations', 'actions'];
var methods = {
state: getState_1.getState,
getters: getGetters_1.getGetters,
mutations: getMutations_1.getMutations,
actions: getActions_1.getActions
};
/**
* Get Vuex module elements, mapped for export
*/
function getModule(module, namespace) {
if (namespace === void 0) { namespace = ''; }
var namespaced = !!module.namespaced;
var out = {};
if (namespaced && !namespace) {
throw new Error('[vuex-typed] Module is namespaced, but the namespace argument wasn\'t provided!');
}
for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {
var field = fields_1[_i];
var method = methods[field];
var entry = module[field];
if (entry) {
out[field] = method(entry, namespace);
}
else {
out[field] = {};
}
}
return out;
}
exports.getModule = getModule;
/**
* Get Vuex module elements, mapped for export
* Alias for `getModule`
*/
exports.getModuleImports = getModule;