redux-modules
Version:
A library for defining clear, boilerplate free Redux reducers.
26 lines (21 loc) • 840 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var reduceTransformations = function reduceTransformations(reducerMap, _ref) {
var formattedConstant = _ref.formattedConstant;
var reducer = _ref.reducer;
// eslint-disable-next-line no-param-reassign
reducerMap[formattedConstant] = reducer;
return reducerMap;
};
var createReducer = exports.createReducer = function createReducer(initialState, transformations) {
var reducerMap = transformations.reduce(reduceTransformations, {});
return function () {
var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];
var action = arguments[1];
var reducer = reducerMap[action.type];
return typeof reducer !== 'undefined' ? reducer(state, action) : state;
};
};
exports.default = createReducer;