deox
Version:
Functional Type-safe Flux Standard Utilities
14 lines (13 loc) • 749 B
TypeScript
import { CreateHandlerMap, HandlerMap, InferActionFromHandlerMap, InferNextStateFromHandlerMap } from './create-handler-map';
/**
* Reducer factory
* @description combines multiple handler map into single reducer
* @example
* const counter = createReducer(0, handleAction => [
* handleAction(increment, state => state + 1),
* handleAction(decrement, state => state - 1),
* ])
*/
export declare function createReducer<TPrevState, THandlerMap extends HandlerMap<TPrevState, any, any>>(defaultState: TPrevState, handlerMapsCreator: (handle: CreateHandlerMap<TPrevState>) => THandlerMap[]): (state: TPrevState | undefined, action: {
type: string;
} | InferActionFromHandlerMap<THandlerMap>) => InferNextStateFromHandlerMap<THandlerMap>;