UNPKG

@actualwave/redux-create-reducer

Version:

Function that combines reducers and calls them when action of same name received

52 lines (38 loc) 1.1 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function baseStateCreator() { return {}; } function createReducerFromActionHandlers(actionHandlers, initialStateCreator) { if (initialStateCreator === undefined) { initialStateCreator = baseStateCreator; } return function(state, action) { if (state === undefined) { state = initialStateCreator(); } const reducer = actionHandlers[action.type]; if (reducer) { return reducer(state, action); } return state; }; } function createReducer(exports) { const reducer = createReducerFromActionHandlers(exports, exports.default); return function(state, action) { if (action.type === 'default') { return state; } return reducer(state, action); }; } function createReducers(exportsMap) { return Object.keys(exportsMap).reduce(function(reducers, key) { reducers[key] = createReducer(exportsMap[key]); return reducers; }, {}); } exports.createReducer = createReducer; exports.createReducers = createReducers; exports.default = createReducer;