Revert and fix lint/tests (#19957)

This commit is contained in:
Florian Richter
2017-09-26 10:58:20 -07:00
committed by Mohamed Hegazy
parent fff9915030
commit b622068882
2 changed files with 77 additions and 32 deletions
+76 -31
View File
@@ -4,7 +4,6 @@
// Alex Gorbatchev <https://github.com/alexgorbatchev>,
// Alec Hill <https://github.com/alechill>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
export as namespace ReduxActions;
@@ -23,12 +22,12 @@ export interface ActionMeta<Payload, Meta> extends Action<Payload> {
meta: Meta;
}
export interface ReducerMap<State> {
[actionType: string]: Reducer<State, any> | ReducerNextThrow<State, any>;
export interface ReducerMap<State, Payload> {
[actionType: string]: Reducer<State, Payload> | ReducerNextThrow<State, Payload>;
}
export interface ReducerMapMeta<State, Meta> {
[actionType: string]: ReducerMeta<State, any, Meta> | ReducerNextThrowMeta<State, any, Meta>;
export interface ReducerMapMeta<State, Payload, Meta> {
[actionType: string]: ReducerMeta<State, Payload, Meta> | ReducerNextThrowMeta<State, Payload, Meta>;
}
export interface ReducerNextThrow<State, Payload> {
@@ -41,28 +40,58 @@ export interface ReducerNextThrowMeta<State, Payload, Meta> {
throw?(state: State, action: ActionMeta<Payload, Meta>): State;
}
export type ActionFunctions<Payload> = ActionFunctionAny<Action<Payload>>;
export type ActionFunctions<Payload> =
ActionFunction0<Action<Payload>> |
ActionFunction1<any, Action<Payload>> |
ActionFunction2<any, any, Action<Payload>> |
ActionFunction3<any, any, any, Action<Payload>> |
ActionFunction4<any, any, any, any, Action<Payload>> |
ActionFunctionAny<Action<Payload>>;
export type Reducer<State, Payload> = (state: State, action: Action<Payload>) => State;
export type ReducerMeta<State, Payload, Meta> = (state: State, action: ActionMeta<Payload, Meta>) => State;
/** argument inferring borrowed from lodash definitions */
export type ActionFunction<R, T1 = undefined, T2 = undefined, T3 = undefined, T4 = undefined> = (t1?: T1, t2?: T2, t3?: T3, t4?: T4) => R;
export type ActionFunction0<R> = () => R;
export type ActionFunction1<T1, R> = (t1: T1) => R;
export type ActionFunction2<T1, T2, R> = (t1: T1, t2: T2) => R;
export type ActionFunction3<T1, T2, T3, R> = (t1: T1, t2: T2, t3: T3) => R;
export type ActionFunction4<T1, T2, T3, T4, R> = (t1: T1, t2: T2, t3: T3, t4: T4) => R;
export type ActionFunctionAny<R> = (...args: any[]) => R;
export function createAction(
actionType: string
): ActionFunction<Action<void>>;
): ActionFunction0<Action<void>>;
export function createAction<Payload, Arg1 = undefined, Arg2 = undefined, Arg3 = undefined, Arg4 = undefined>(
export function createAction<Payload>(
actionType: string,
payloadCreator: ActionFunction<Payload, Arg1, Arg2, Arg3, Arg4>
): ActionFunction<Action<Payload>, Arg1, Arg2, Arg3, Arg4>;
payloadCreator: ActionFunction0<Payload>
): ActionFunction0<Action<Payload>>;
export function createAction<Payload, Arg1>(
actionType: string,
payloadCreator: ActionFunction1<Arg1, Payload>
): ActionFunction1<Arg1, Action<Payload>>;
export function createAction<Payload, Arg1, Arg2>(
actionType: string,
payloadCreator: ActionFunction2<Arg1, Arg2, Payload>
): ActionFunction2<Arg1, Arg2, Action<Payload>>;
export function createAction<Payload, Arg1, Arg2, Arg3>(
actionType: string,
payloadCreator: ActionFunction3<Arg1, Arg2, Arg3, Payload>
): ActionFunction3<Arg1, Arg2, Arg3, Action<Payload>>;
export function createAction<Payload, Arg1, Arg2, Arg3, Arg4>(
actionType: string,
payloadCreator: ActionFunction4<Arg1, Arg2, Arg3, Arg4, Payload>
): ActionFunction4<Arg1, Arg2, Arg3, Arg4, Action<Payload>>;
export function createAction<Payload>(
actionType: string
): ActionFunction<Action<Payload>, Payload>;
): ActionFunction1<Payload, Action<Payload>>;
export function createAction<Payload, Meta>(
actionType: string,
@@ -70,11 +99,29 @@ export function createAction<Payload, Meta>(
metaCreator: ActionFunctionAny<Meta>
): ActionFunctionAny<ActionMeta<Payload, Meta>>;
export function createAction<Payload, Meta, Arg1>(
actionType: string,
payloadCreator: ActionFunction1<Arg1, Payload>,
metaCreator: ActionFunction1<Arg1, Meta>
): ActionFunction1<Arg1, ActionMeta<Payload, Meta>>;
export function createAction<Payload, Meta, Arg1, Arg2>(
actionType: string,
payloadCreator: ActionFunction2<Arg1, Arg2, Payload>,
metaCreator: ActionFunction2<Arg1, Arg2, Meta>
): ActionFunction2<Arg1, Arg2, ActionMeta<Payload, Meta>>;
export function createAction<Payload, Meta, Arg1, Arg2, Arg3>(
actionType: string,
payloadCreator: ActionFunction3<Arg1, Arg2, Arg3, Payload>,
metaCreator: ActionFunction3<Arg1, Arg2, Arg3, Meta>
): ActionFunction3<Arg1, Arg2, Arg3, ActionMeta<Payload, Meta>>;
export function createAction<Payload, Meta, Arg1, Arg2, Arg3, Arg4>(
actionType: string,
payloadCreator: ActionFunction<Payload, Arg1, Arg2, Arg3, Arg4>,
metaCreator: ActionFunction<Meta, Arg1, Arg2, Arg3, Arg4>
): ActionFunction<ActionMeta<Payload, Meta>, Arg1, Arg2, Arg3, Arg4>;
payloadCreator: ActionFunction4<Arg1, Arg2, Arg3, Arg4, Payload>,
metaCreator: ActionFunction4<Arg1, Arg2, Arg3, Arg4, Meta>
): ActionFunction4<Arg1, Arg2, Arg3, Arg4, ActionMeta<Payload, Meta>>;
export function handleAction<State, Payload>(
actionType: string | ActionFunctions<Payload>,
@@ -88,19 +135,24 @@ export function handleAction<State, Payload, Meta>(
initialState: State
): Reducer<State, Payload>;
export function handleActions<State>(
reducerMap: ReducerMap<State>,
initialState: State
): Reducer<State, any>;
export function handleActions<StateAndPayload>(
reducerMap: ReducerMap<StateAndPayload, StateAndPayload>,
initialState: StateAndPayload
): Reducer<StateAndPayload, StateAndPayload>;
export function handleActions<State, Meta>(
reducerMap: ReducerMapMeta<State, Meta>,
export function handleActions<State, Payload>(
reducerMap: ReducerMap<State, Payload>,
initialState: State
): ReducerMeta<State, any, Meta>;
): Reducer<State, Payload>;
export function handleActions<State, Payload, Meta>(
reducerMap: ReducerMapMeta<State, Payload, Meta>,
initialState: State
): ReducerMeta<State, Payload, Meta>;
export function combineActions(...actionTypes: Array<ActionFunctions<any> | string>): string;
export interface ActionMap<Payload, Meta = undefined> {
export interface ActionMap<Payload, Meta> {
[actionType: string]:
ActionMap<Payload, Meta> |
ActionFunctionAny<Payload> |
@@ -109,15 +161,8 @@ export interface ActionMap<Payload, Meta = undefined> {
}
export function createActions<Payload>(
actionMap: ActionMap<Payload>,
actionMap: ActionMap<Payload, any>,
...identityActions: string[]
): {
[actionName: string]: ActionFunctionAny<Action<Payload>>
};
export function createActions<Payload, Meta>(
actionMap: ActionMap<Payload, Meta>,
...identityActions: string[]
): {
[actionName: string]: ActionFunctionAny<ActionMeta<Payload, Meta>>
};
+1 -1
View File
@@ -144,7 +144,7 @@ const typedActionHandlerWithMeta = ReduxActions.handleAction<TypedState, TypedPa
typedState = typedActionHandlerWithMeta({ value: 0 }, typedIncrementByActionWithMetaAnyArgs(10));
const typedActionHandlerReducerMetaMap = ReduxActions.handleActions<TypedState, MetaType>(
const typedActionHandlerReducerMetaMap = ReduxActions.handleActions<TypedState, TypedPayload, MetaType>(
{
INCREMENT_BY: {
next(state: TypedState, action: ReduxActions.ActionMeta<TypedPayload, MetaType>) {