@hanxx/vue-hooks
Version:
⚡️ Awesome Vue Hooks
46 lines (45 loc) • 1.74 kB
JavaScript
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
var composition_api_1 = require("@vue/composition-api");
var vuex_1 = require("vuex");
var Helper;
(function (Helper) {
Helper[Helper["State"] = 0] = "State";
Helper[Helper["Getters"] = 1] = "Getters";
Helper[Helper["Mutations"] = 2] = "Mutations";
Helper[Helper["Actions"] = 3] = "Actions";
})(Helper = exports.Helper || (exports.Helper = {}));
function handleComputed(mappedFn) {
// TypeError: Cannot read property '_modulesNamespaceMap' of undefined
// You must get `runtimeVM` in real time in the calculation properties.
var vm = composition_api_1.getCurrentInstance();
return composition_api_1.computed(function () { return mappedFn.call(vm); });
}
function handleMethods(mappedFn) {
var vm = composition_api_1.getCurrentInstance();
return mappedFn.bind(vm);
}
var helpers = (_a = {},
_a[Helper.State] = { fn: vuex_1.mapState, handler: handleComputed },
_a[Helper.Getters] = { fn: vuex_1.mapGetters, handler: handleComputed },
_a[Helper.Mutations] = { fn: vuex_1.mapMutations, handler: handleMethods },
_a[Helper.Actions] = { fn: vuex_1.mapActions, handler: handleMethods },
_a);
function createVuexHelper(h) {
var helper = helpers[h];
return (function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
// @ts-ignore
var mapper = helper.fn.apply(helper, args);
var dictionary = {};
Object.keys(mapper).forEach(function (key) {
dictionary[key] = helper.handler(mapper[key]);
});
return dictionary;
});
}
exports.default = createVuexHelper;
;