Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Store, Module, ActionContext } from 'vuex';
- export function createModuleActionContext<RootState, ModuleState>(
- rootStore: Store<RootState>, moduleStore: Module<ModuleState, RootState>, moduleName: string
- ): ActionContext<ModuleState, RootState> {
- return {
- get dispatch() {
- return moduleStore.namespaced
- ? (rootStore as any)._modulesNamespaceMap[moduleName + '/'].context.dispatch
- : rootStore.dispatch;
- },
- get commit() {
- return moduleStore.namespaced
- ? (rootStore as any)._modulesNamespaceMap[moduleName + '/'].context.commit
- : rootStore.commit;
- },
- // @ts-ignore
- state: moduleStore.state,
- getters: moduleStore.getters,
- rootState: rootStore.state,
- rootGetters: rootStore.getters
- };
- }
- export function createRootActionContext<RootState>(
- { state, getters, commit, dispatch }: Store<RootState>
- ): ActionContext<RootState, RootState> {
- return {
- dispatch,
- commit,
- state,
- getters,
- rootState: state,
- rootGetters: getters
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement