UNPKG

@u3u/vue-hooks

Version:
45 lines (44 loc) 1.73 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); var composition_api_1 = require("@vue/composition-api"); var vuex_1 = require("vuex"); var runtime_1 = require("../../util/runtime"); 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. return composition_api_1.computed(function () { return mappedFn.call(runtime_1.getRuntimeVM()); }); } function handleMethods(mappedFn) { return mappedFn.bind(runtime_1.getRuntimeVM()); } 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;