UNPKG

@hanxx/vue-hooks

Version:
46 lines (45 loc) 1.74 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 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;