Comparing version 2.3.3 to 2.3.4
# Change Log | ||
All notable changes to this project will be documented in this file. | ||
## 2.3.4 - 2021-03-30 | ||
- Add types for arrays of listeners (was supported, just not typed) | ||
- Add types for using selectors as defaults in reducers | ||
## 2.3.3 - 2021-03-01 | ||
@@ -5,0 +9,0 @@ - Add generics to the `BuiltLogic<logicType>` and `LogicWrapper<logicType>` types. |
@@ -65,4 +65,5 @@ import { AnyAction, Reducer, Middleware, compose, StoreEnhancer, Store, Action } from 'redux'; | ||
}; | ||
declare type ReducerDefault<Reducer extends () => any, P extends Props> = ReturnType<Reducer> | ((state: any, props: P) => ReturnType<Reducer>); | ||
declare type ReducerDefinitions<LogicType extends Logic> = { | ||
[K in keyof LogicType['reducers']]?: [ReturnType<LogicType['reducers'][K]>, any, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReturnType<LogicType['reducers'][K]>, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReturnType<LogicType['reducers'][K]>, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReturnType<LogicType['reducers'][K]>] | ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>; | ||
[K in keyof LogicType['reducers']]?: [ReducerDefault<LogicType['reducers'][K], LogicType['props']>, any, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReducerDefault<LogicType['reducers'][K], LogicType['props']>, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReducerDefault<LogicType['reducers'][K], LogicType['props']>, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReducerDefault<LogicType['reducers'][K], LogicType['props']>] | ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>; | ||
}; | ||
@@ -79,3 +80,3 @@ declare type ReducerFunction<S = any> = (state: S, action: AnyAction, fullState: any) => S; | ||
declare type ListenerDefinitionsForRecord<A extends Record<string, (...args: any) => any>> = { | ||
[K in keyof A]?: ListenerFunction<ReturnType<A[K]>>; | ||
[K in keyof A]?: ListenerFunction<ReturnType<A[K]>> | ListenerFunction<ReturnType<A[K]>>[]; | ||
}; | ||
@@ -82,0 +83,0 @@ declare type ListenerDefinitions<LogicType extends Logic> = ListenerDefinitionsForRecord<LogicType['actionCreators']> & ListenerDefinitionsForRecord<LogicType['__keaTypeGenInternalReducerActions']>; |
@@ -64,4 +64,5 @@ import { Reducer, Store, Action as ReduxAction, Middleware, StoreEnhancer, compose, AnyAction } from 'redux'; | ||
}; | ||
declare type ReducerDefault<Reducer extends () => any, P extends Props> = ReturnType<Reducer> | ((state: any, props: P) => ReturnType<Reducer>); | ||
declare type ReducerDefinitions<LogicType extends Logic> = { | ||
[K in keyof LogicType['reducers']]?: [ReturnType<LogicType['reducers'][K]>, any, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReturnType<LogicType['reducers'][K]>, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReturnType<LogicType['reducers'][K]>, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReturnType<LogicType['reducers'][K]>] | ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>; | ||
[K in keyof LogicType['reducers']]?: [ReducerDefault<LogicType['reducers'][K], LogicType['props']>, any, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReducerDefault<LogicType['reducers'][K], LogicType['props']>, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReducerDefault<LogicType['reducers'][K], LogicType['props']>, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | [ReducerDefault<LogicType['reducers'][K], LogicType['props']>] | ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>; | ||
}; | ||
@@ -78,3 +79,3 @@ export declare type ReducerFunction<S = any> = (state: S, action: AnyAction, fullState: any) => S; | ||
declare type ListenerDefinitionsForRecord<A extends Record<string, (...args: any) => any>> = { | ||
[K in keyof A]?: ListenerFunction<ReturnType<A[K]>>; | ||
[K in keyof A]?: ListenerFunction<ReturnType<A[K]>> | ListenerFunction<ReturnType<A[K]>>[]; | ||
}; | ||
@@ -81,0 +82,0 @@ declare type ListenerDefinitions<LogicType extends Logic> = ListenerDefinitionsForRecord<LogicType['actionCreators']> & ListenerDefinitionsForRecord<LogicType['__keaTypeGenInternalReducerActions']>; |
{ | ||
"name": "kea", | ||
"version": "2.3.3", | ||
"version": "2.3.4", | ||
"description": "Smart front-end architecture", | ||
@@ -5,0 +5,0 @@ "author": "Marius Andra", |
@@ -84,8 +84,24 @@ import { Reducer, Store, Action as ReduxAction, Middleware, StoreEnhancer, compose, AnyAction } from 'redux' | ||
type ReducerDefault<Reducer extends () => any, P extends Props> = | ||
| ReturnType<Reducer> | ||
| ((state: any, props: P) => ReturnType<Reducer>) | ||
type ReducerDefinitions<LogicType extends Logic> = { | ||
[K in keyof LogicType['reducers']]?: | ||
| [ReturnType<LogicType['reducers'][K]>, any, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | ||
| [ReturnType<LogicType['reducers'][K]>, any, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | ||
| [ReturnType<LogicType['reducers'][K]>, ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>] | ||
| [ReturnType<LogicType['reducers'][K]>] | ||
| [ | ||
ReducerDefault<LogicType['reducers'][K], LogicType['props']>, | ||
any, | ||
any, | ||
ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>, | ||
] | ||
| [ | ||
ReducerDefault<LogicType['reducers'][K], LogicType['props']>, | ||
any, | ||
ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>, | ||
] | ||
| [ | ||
ReducerDefault<LogicType['reducers'][K], LogicType['props']>, | ||
ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>>, | ||
] | ||
| [ReducerDefault<LogicType['reducers'][K], LogicType['props']>] | ||
| ReducerActions<LogicType, ReturnType<LogicType['reducers'][K]>> | ||
@@ -128,3 +144,3 @@ } | ||
type ListenerDefinitionsForRecord<A extends Record<string, (...args: any) => any>> = { | ||
[K in keyof A]?: ListenerFunction<ReturnType<A[K]>> | ||
[K in keyof A]?: ListenerFunction<ReturnType<A[K]>> | ListenerFunction<ReturnType<A[K]>>[] | ||
} | ||
@@ -131,0 +147,0 @@ |
281264
7041