direct-vuex
Advanced tools
Comparing version 0.5.0 to 0.6.0
@@ -18,4 +18,9 @@ "use strict"; | ||
store, | ||
directActionContext: actionContextProvider(store), | ||
directRootActionContext: rootActionContextProvider(store) | ||
directActionContext: rootActionContextProvider(store), | ||
directModule(module) { | ||
return { | ||
module, | ||
directActionContext: actionContextProvider(module, store) | ||
}; | ||
} | ||
}; | ||
@@ -88,4 +93,4 @@ } | ||
const actionContexts = new WeakMap(); | ||
function actionContextProvider(store) { | ||
return (originalContext, options) => { | ||
function actionContextProvider(options, store) { | ||
return (originalContext) => { | ||
let context = actionContexts.get(originalContext.dispatch); | ||
@@ -92,0 +97,0 @@ if (!context) { |
{ | ||
"name": "direct-vuex", | ||
"version": "0.5.0", | ||
"version": "0.6.0", | ||
"description": "Just Vuex with typing. Compatible with the Vue 3 composition API.", | ||
@@ -5,0 +5,0 @@ "author": "Paleo", |
@@ -33,4 +33,5 @@ # direct-vuex | ||
export default store | ||
export { directActionContext, directRootActionContext } | ||
export type AppStore = typeof store | ||
declare module "vuex" { | ||
@@ -41,4 +42,2 @@ interface Store<S> { | ||
} | ||
export { directActionContext, directRootActionContext } | ||
``` | ||
@@ -45,0 +44,0 @@ |
import Vuex, { ActionContext, Store } from "vuex" | ||
import { ActionsImpl, GettersImpl, MutationsImpl, StoreOptions, StoreOrModuleOptions } from "../types" | ||
import { ActionsImpl, GettersImpl, ModuleOptions, MutationsImpl, StoreOptions, StoreOrModuleOptions } from "../types" | ||
import { CreatedStore, ToDirectStore, VuexStore } from "../types/direct-types" | ||
@@ -22,4 +22,9 @@ | ||
store, | ||
directActionContext: actionContextProvider(store), | ||
directRootActionContext: rootActionContextProvider(store) | ||
directActionContext: rootActionContextProvider(store), | ||
directModule(module: any) { | ||
return { | ||
module, | ||
directActionContext: actionContextProvider(module, store) | ||
} | ||
} | ||
} | ||
@@ -133,4 +138,4 @@ } | ||
function actionContextProvider(store: ToDirectStore<any>) { | ||
return (originalContext: ActionContext<any, any>, options: StoreOrModuleOptions) => { | ||
function actionContextProvider(options: ModuleOptions, store: ToDirectStore<any>) { | ||
return (originalContext: ActionContext<any, any>) => { | ||
let context = actionContexts.get(originalContext.dispatch) | ||
@@ -137,0 +142,0 @@ if (!context) { |
import { ActionContext, Store } from "vuex" | ||
import { ActionsImpl, GettersImpl, ModulesImpl, MutationsImpl, StoreOptions, StoreOrModuleOptions } from "./index" | ||
import { ActionsImpl, GettersImpl, ModuleOptions, ModulesImpl, MutationsImpl, StoreOptions, StoreOrModuleOptions } from "./index" | ||
export interface CreatedStore<O> { | ||
store: ToDirectStore<O> | ||
export interface CreatedStore<R extends StoreOptions> { | ||
store: ToDirectStore<R> | ||
directActionContext: <P extends StoreOrModuleOptions>( | ||
context: ActionContext<any, any>, options: P | ||
) => DirectActionContext<O, P> | ||
directRootActionContext: (context: ActionContext<any, any>) => DirectActionContext<O, O> | ||
directActionContext: (context: ActionContext<any, any>) => DirectActionContext<R, R> | ||
directModule<O extends ModuleOptions>(options: O): DirectModule<R, O> | ||
} | ||
export type ToDirectStore<O extends StoreOptions> = { | ||
readonly state: ToFlatType<DirectState<O>> | ||
getters: ToFlatType<DirectGetters<O>> | ||
commit: ToFlatType<DirectMutations<O>> | ||
dispatch: ToFlatType<DirectActions<O>> | ||
original: VuexStore<O> | ||
export interface DirectModule<R extends StoreOptions, O extends ModuleOptions> { | ||
module: O | ||
directActionContext: (context: ActionContext<any, any>) => DirectActionContext<R, O> | ||
} | ||
export type VuexStore<O extends StoreOptions> = Store<ToFlatType<DirectState<O>>> & { | ||
direct: ToDirectStore<O> | ||
export type ToDirectStore<R extends StoreOptions> = { | ||
readonly state: ToFlatType<DirectState<R>> | ||
getters: ToFlatType<DirectGetters<R>> | ||
commit: ToFlatType<DirectMutations<R>> | ||
dispatch: ToFlatType<DirectActions<R>> | ||
original: VuexStore<R> | ||
} | ||
export type VuexStore<R extends StoreOptions> = Store<ToFlatType<DirectState<R>>> & { | ||
direct: ToDirectStore<R> | ||
} | ||
// State | ||
@@ -26,0 +29,0 @@ |
28995
561
125