higher-order-reducers
Version:
A library of simple everyday reducer utility functions
24 lines (21 loc) • 669 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var mapByType = function mapByType() {
var reducers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var reducerKeys = Object.keys(reducers);
for (var i = 0; i < reducerKeys.length; i += 1) {
var key = reducerKeys[i];
if (typeof reducers[key] !== 'function') {
throw new Error('Key "' + key + '" in mapByType is not a reducer');
}
}
return function (state, action) {
if (typeof reducers[action.type] === 'undefined') {
return state;
}
return reducers[action.type](state, action);
};
};
exports.default = mapByType;