clone of github.com/decent-newsroom/newsroom
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

22 lines
742 B

"use strict";
;
exports.__esModule = true;
exports["default"] = function (handlers, initialState) {
return function (state, action) {
if (state === void 0) { state = initialState; }
return handlers
.map(function (_a) {
var unwrapper = _a.unwrapper, handler = _a.handler;
return ({ unwrappedAction: unwrapper(action), handler: handler });
})
.reduce(function (currentState, _a) {
var unwrappedAction = _a.unwrappedAction, handler = _a.handler;
if (unwrappedAction) {
return handler(currentState, unwrappedAction);
}
else {
return currentState;
}
}, state);
};
};