dareway-rui
Version:
59 lines (46 loc) • 1.77 kB
JavaScript
;
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
var _toConsumableArray2 = _interopRequireDefault(require('@babel/runtime/helpers/toConsumableArray'));
var _invariant = _interopRequireDefault(require('invariant'));
function identify(value) {
return value;
}
function handleAction(actionType) {
var reducer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identify;
return function(state, action) {
var type = action.type;
(0, _invariant.default)(type, 'dispatch: action should be a plain Object with type');
if (actionType === type) {
return reducer(state, action);
}
return state;
};
}
function reduceReducers() {
for (var _len = arguments.length, reducers = new Array(_len), _key = 0; _key < _len; _key++) {
reducers[_key] = arguments[_key];
}
return function(previous, current) {
return reducers.reduce(function(p, r) {
return r(p, current);
}, previous);
};
}
function handleActions(handlers, defaultState) {
var reducers = Object.keys(handlers).map(function(type) {
return handleAction(type, handlers[type]);
});
var reducer = reduceReducers.apply(void 0, (0, _toConsumableArray2.default)(reducers));
return function() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;
var action = arguments.length > 1 ? arguments[1] : undefined;
return reducer(state, action);
};
}
var _default = handleActions;
exports.default = _default;
//@ sourceMappingURL=handleActions.js.map