vuex-composition-maphooks
Version:
To support vuex-composition map* helper functions
2 lines (1 loc) • 2.5 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vuex")):"function"==typeof define&&define.amd?define(["exports","vuex"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["vuex-composition-maphooks"]={},e.vuex)}(this,function(e,s){"use strict";const t=u((o,e)=>{const t={},u=s.useStore();return e&&!i(e)&&console.error("[vuex] useState: mapper parameter must be either an Array or an Object"),e&&a(e).forEach(({key:e,val:n})=>{t[e]=function(){let e=u.state,t=u.getters;if("string"==typeof o&&o){var r=c(u,"useState",o);if(!r)return;e=r.state,t=r.context.getters}return"function"==typeof n?n.call(this,e,t):e[n]},t[e].vuex=!0}),t}),r=u((r,e)=>{const n={},o=s.useStore();return e&&!i(e)&&console.error("[vuex] useGetters: mapper parameter must be either an Array or an Object"),e&&a(e).forEach(({key:e,val:t})=>{t=r+t,n[e]=function(){if(!r||"string"!=typeof r||c(o,"useGetters",r)){if(t in o.getters)return o.getters[t];console.error("[vuex] unknown getter: "+t)}},n[e].vuex=!0}),n}),n=u((o,e)=>{const t={},u=s.useStore();return e&&!i(e)&&console.error("[vuex] useMutations: mapper parameter must be either an Array or an Object"),e&&a(e).forEach(({key:e,val:n})=>{t[e]=function(...e){let t=u.commit;if(o&&"string"==typeof o){var r=c(u,"useMutations",o);if(!r)return;t=r.context.commit}return"function"==typeof n?n.apply(this,[t].concat(e)):t.apply(u,[n].concat(e))}}),t}),o=u((o,e)=>{const t={},u=(e&&!i(e)&&console.error("[vuex] useActions: mapper parameter must be an Array"),s.useStore());return e&&a(e).forEach(({key:e,val:n})=>{t[e]=function(...e){let t=u.dispatch;if(o&&"string"==typeof o){var r=c(u,"useActions",o);if(!r)return;t=r.context.dispatch}return"function"==typeof n?n.apply(this,[t].concat(e)):t.apply(u,[n].concat(e))}}),t});function a(t){return i(t)?Array.isArray(t)?t.map(e=>({key:function(e){return e.includes("/")?e.split("/")[1]:e}(e),val:e})):Object.keys(t).map(e=>({key:t[e],val:e})):[]}function i(e){return Array.isArray(e)||"object"==typeof(e=e)&&null!==e}function u(r){return(e,t)=>("string"!=typeof e?(t=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),r(e,t))}function c(e,t,r){e=e._modulesNamespaceMap[r];return e||console.error(`[vuex] module namespace not found in ${t}(): `+r),e}e.createNamespacedHelpers=e=>({useState:t.bind(null,e),useGetters:r.bind(null,e),useMutations:n.bind(null,e),useActions:o.bind(null,e)}),e.useActions=o,e.useGetters=r,e.useMutations=n,e.useState=t,Object.defineProperty(e,"__esModule",{value:!0})});