From c0f740c407b05574ed0d9d73364a898f68c65d11 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 12 May 2021 16:33:31 +0200 Subject: [PATCH] refactor(types): use Store with defaults, deprecate GenericStore --- __tests__/onAction.spec.ts | 10 +++++++++- src/mapHelpers.ts | 3 +-- src/rootStore.ts | 4 ++-- src/store.ts | 2 +- src/types.ts | 18 ++---------------- 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/__tests__/onAction.spec.ts b/__tests__/onAction.spec.ts index 315388ee..b42e147c 100644 --- a/__tests__/onAction.spec.ts +++ b/__tests__/onAction.spec.ts @@ -70,7 +70,15 @@ describe('Subscriptions', () => { it('calls after with the returned value', async () => { const spy = jest.fn() - store.$onAction(({ after }) => { + store.$onAction(({ after, name, store }) => { + name + if (name === 'upperName') { + after((ret) => { + // @ts-expect-error + ret * 2 + ret.toUpperCase() + }) + } after(spy) }) expect(store.upperName()).toBe('EDUARDO') diff --git a/src/mapHelpers.ts b/src/mapHelpers.ts index 347d2de6..bddb18a4 100644 --- a/src/mapHelpers.ts +++ b/src/mapHelpers.ts @@ -1,6 +1,5 @@ import type Vue from 'vue' import { - GenericStore, GettersTree, _Method, StateTree, @@ -151,7 +150,7 @@ export type _MapStateObjectReturn< keyof S | keyof G | ((store: Store) => any) > > = { - [key in keyof T]: () => T[key] extends (store: GenericStore) => infer R + [key in keyof T]: () => T[key] extends (store: Store) => infer R ? R : T[key] extends keyof S | keyof G ? Store[T[key]] diff --git a/src/rootStore.ts b/src/rootStore.ts index 4e27d00c..9f8dfbd7 100644 --- a/src/rootStore.ts +++ b/src/rootStore.ts @@ -26,7 +26,7 @@ export const storesMap = new WeakMap< [ StoreWithState, StateDescriptor, - InjectionKey + InjectionKey ] > >() @@ -122,7 +122,7 @@ declare module 'vue/types/vue' { * * @internal */ - _pStores?: Record + _pStores?: Record } } diff --git a/src/store.ts b/src/store.ts index 24f938e9..4c4794a6 100644 --- a/src/store.ts +++ b/src/store.ts @@ -100,7 +100,7 @@ function initStore( ): [ StoreWithState, { get: () => S; set: (newValue: S) => void }, - InjectionKey + InjectionKey ] { const pinia = getActivePinia() pinia.Vue.set(pinia.state.value, $id, initialState || buildState()) diff --git a/src/types.ts b/src/types.ts index 1f04cf9b..dd097368 100644 --- a/src/types.ts +++ b/src/types.ts @@ -300,23 +300,9 @@ export interface StoreDefinition< /** * Generic version of Store. + * @deprecated Use Store instead */ -export type GenericStore = Store< - string, - StateTree, - GettersTree, - Record -> - -/** - * Generic version of `StoreDefinition`. - */ -export type GenericStoreDefinition = StoreDefinition< - string, - StateTree, - GettersTree, - Record -> +export type GenericStore = Store /** * Properties that are added to every store by `pinia.use()` -- 2.47.3