From d331e56fa53df002eac0930d4155a11790166c79 Mon Sep 17 00:00:00 2001 From: profreelancer222 Date: Sun, 25 Feb 2024 13:09:29 -0500 Subject: [PATCH] add other auth Co-authored-by: arthurkoblet210 Co-authored-by: arthrukffws --- src/helpers.js | 60 +++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/helpers.js b/src/helpers.js index 388bb79..5dae0c4 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -63,7 +63,35 @@ export const mapState = normalizeNamespace((namespace, states) => { return res }) - +/** + * Reduce the code which written in Vue.js for dispatch the action + * @param {String} [namespace] - Module's namespace + * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function. + * @return {Object} + */ +export const mapActions = normalizeNamespace((namespace, actions) => { + const res = {} + if (__DEV__ && !isValidMap(actions)) { + console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object') + } + normalizeMap(actions).forEach(({ key, val }) => { + res[key] = function mappedAction (...args) { + // get dispatch function from store + let dispatch = this.$store.dispatch + if (namespace) { + const module = getModuleByNamespace(this.$store, 'mapActions', namespace) + if (!module) { + return + } + dispatch = module.context.dispatch + } + return typeof val === 'function' + ? val.apply(this, [dispatch].concat(args)) + : dispatch.apply(this.$store, [val].concat(args)) + } + }) + return res +}) /** * Reduce the code which written in Vue.js for getting the getters @@ -95,35 +123,7 @@ export const mapGetters = normalizeNamespace((namespace, getters) => { return res }) -/** - * Reduce the code which written in Vue.js for dispatch the action - * @param {String} [namespace] - Module's namespace - * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function. - * @return {Object} - */ -export const mapActions = normalizeNamespace((namespace, actions) => { - const res = {} - if (__DEV__ && !isValidMap(actions)) { - console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object') - } - normalizeMap(actions).forEach(({ key, val }) => { - res[key] = function mappedAction (...args) { - // get dispatch function from store - let dispatch = this.$store.dispatch - if (namespace) { - const module = getModuleByNamespace(this.$store, 'mapActions', namespace) - if (!module) { - return - } - dispatch = module.context.dispatch - } - return typeof val === 'function' - ? val.apply(this, [dispatch].concat(args)) - : dispatch.apply(this.$store, [val].concat(args)) - } - }) - return res -}) + /** * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object