From a8d603dd59a30c8f6554404fc9fb4b68af20d519 Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Thu, 26 Sep 2019 23:52:41 +0700 Subject: [PATCH] Refactor store to accept state as part of params The old code was returning a fn because TypeScript could not figure out generic type parameters when params was an object like: interface Params { a: Reducer b: Partial } function test(params: Params) { // ... } --- packages/client/src/crud/CRUD.test.tsx | 2 +- packages/client/src/test-utils/TestUtils.tsx | 7 ++++--- packages/jsonrpc/src/redux.test.ts | 2 +- packages/redux/src/store/createStore.ts | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/client/src/crud/CRUD.test.tsx b/packages/client/src/crud/CRUD.test.tsx index 5f4e1ba..bdf24ed 100644 --- a/packages/client/src/crud/CRUD.test.tsx +++ b/packages/client/src/crud/CRUD.test.tsx @@ -74,7 +74,7 @@ describe('CRUD', () => { }, }) function getStore() { - return test.createStore({reducer})() + return test.createStore({reducer}) } type Store = ReturnType diff --git a/packages/client/src/test-utils/TestUtils.tsx b/packages/client/src/test-utils/TestUtils.tsx index f3846d4..5d579c1 100644 --- a/packages/client/src/test-utils/TestUtils.tsx +++ b/packages/client/src/test-utils/TestUtils.tsx @@ -62,12 +62,13 @@ export class TestUtils { let store = this.createStore({ reducer: this.combineReducers(reducers), extraMiddleware: [waitMiddleware.handle], - })() + }) - const withState = (state: DeepPartial) => { + const withState = (state: Partial) => { store = this.createStore({ reducer: this.combineReducers(reducers), - })(state) + state, + }) return {withComponent} } diff --git a/packages/jsonrpc/src/redux.test.ts b/packages/jsonrpc/src/redux.test.ts index 1938208..207d464 100644 --- a/packages/jsonrpc/src/redux.test.ts +++ b/packages/jsonrpc/src/redux.test.ts @@ -143,7 +143,7 @@ describe('createActions', () => { }) const reducer = combineReducers({handler, mapping}) - const store = createStore({reducer})() + const store = createStore({reducer}) return {client, store} } diff --git a/packages/redux/src/store/createStore.ts b/packages/redux/src/store/createStore.ts index d828488..7e45326 100644 --- a/packages/redux/src/store/createStore.ts +++ b/packages/redux/src/store/createStore.ts @@ -1,4 +1,4 @@ -import { Action, applyMiddleware, createStore as create, DeepPartial, Middleware, Reducer } from 'redux' +import { Action, applyMiddleware, createStore as create, Middleware, Reducer } from 'redux' import { PromiseMiddleware, ReduxLogger } from '../middleware' export interface CreateStoreParams { @@ -25,9 +25,9 @@ export function createStore( if (params.extraMiddleware) { middleware.push(...params.extraMiddleware) } - return (state?: DeepPartial) => create( + return create( params.reducer, - state, + params.state, applyMiddleware(...middleware), ) }