gambit
Version:
A hyper-thin library to help building API driven redux apps
28 lines (20 loc) • 970 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _immutable = require('immutable');
var _wrappedState = require('./wrappedState');
var _wrappedState2 = _interopRequireDefault(_wrappedState);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (reducers, _ref) {
var strictMode = _ref.strictMode;
var logging = _ref.logging;
return function () {
var prevState = arguments.length <= 0 || arguments[0] === undefined ? new _immutable.Map({}) : arguments[0];
var action = arguments[1];
var mapValue = strictMode || logging ? (0, _wrappedState2.default)(new _immutable.Map({}), { strictMode: strictMode, logging: logging, key: 'topLevelReducer' }) : new _immutable.Map({});
return reducers.reduce(function (aggregate, value, key) {
return aggregate.set(key, value.call(undefined, prevState.get(key), action));
}, mapValue);
};
};