UNPKG

vuex-composition-maphooks

Version:
2 lines (1 loc) 2.8 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var vuex=require("vuex");const useState=normalizeNamespace((s,e)=>{const t={},n=vuex.useStore();return e&&!isValidMap(e)&&console.error("[vuex] useState: mapper parameter must be either an Array or an Object"),e&&normalizeMap(e).forEach(({key:e,val:a})=>{t[e]=function(){let e=n.state,t=n.getters;if("string"==typeof s&&s){var r=getModuleByNamespace(n,"useState",s);if(!r)return;e=r.state,t=r.context.getters}return"function"==typeof a?a.call(this,e,t):e[a]},t[e].vuex=!0}),t}),useGetters=normalizeNamespace((r,e)=>{const a={},s=vuex.useStore();return e&&!isValidMap(e)&&console.error("[vuex] useGetters: mapper parameter must be either an Array or an Object"),e&&normalizeMap(e).forEach(({key:e,val:t})=>{t=r+t,a[e]=function(){if(!r||"string"!=typeof r||getModuleByNamespace(s,"useGetters",r)){if(t in s.getters)return s.getters[t];console.error("[vuex] unknown getter: "+t)}},a[e].vuex=!0}),a}),useMutations=normalizeNamespace((s,e)=>{const t={},n=vuex.useStore();return e&&!isValidMap(e)&&console.error("[vuex] useMutations: mapper parameter must be either an Array or an Object"),e&&normalizeMap(e).forEach(({key:e,val:a})=>{t[e]=function(...e){let t=n.commit;if(s&&"string"==typeof s){var r=getModuleByNamespace(n,"useMutations",s);if(!r)return;t=r.context.commit}return"function"==typeof a?a.apply(this,[t].concat(e)):t.apply(n,[a].concat(e))}}),t}),useActions=normalizeNamespace((s,e)=>{const t={},n=(e&&!isValidMap(e)&&console.error("[vuex] useActions: mapper parameter must be an Array"),vuex.useStore());return e&&normalizeMap(e).forEach(({key:e,val:a})=>{t[e]=function(...e){let t=n.dispatch;if(s&&"string"==typeof s){var r=getModuleByNamespace(n,"useActions",s);if(!r)return;t=r.context.dispatch}return"function"==typeof a?a.apply(this,[t].concat(e)):t.apply(n,[a].concat(e))}}),t}),createNamespacedHelpers=e=>({useState:useState.bind(null,e),useGetters:useGetters.bind(null,e),useMutations:useMutations.bind(null,e),useActions:useActions.bind(null,e)});function isObject(e){return"object"==typeof e&&null!==e}function normalizeMap(t){return isValidMap(t)?Array.isArray(t)?t.map(e=>({key:normalizeKey(e),val:e})):Object.keys(t).map(e=>({key:t[e],val:e})):[]}function normalizeKey(e){return e.includes("/")?e.split("/")[1]:e}function isValidMap(e){return Array.isArray(e)||isObject(e)}function normalizeNamespace(r){return(e,t)=>("string"!=typeof e?(t=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),r(e,t))}function getModuleByNamespace(e,t,r){e=e._modulesNamespaceMap[r];return e||console.error(`[vuex] module namespace not found in ${t}(): `+r),e}exports.createNamespacedHelpers=createNamespacedHelpers,exports.useActions=useActions,exports.useGetters=useGetters,exports.useMutations=useMutations,exports.useState=useState;