fluorine-lib
Version:
Reactive state and side effect management for React using a single stream of actions
41 lines (31 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = combineReducers;
var _combineLatest = require('rxjs/observable/combineLatest');
var combineLatest = _combineLatest.combineLatest;
var _isObservable = require('./util/isObservable');
var isObservable = _interopRequireDefault(_isObservable).default;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function combineReducers(reducers) {
var keys = Object.keys(reducers);
return function (reduce) {
return combineLatest.apply(undefined, keys.map(function (key) {
var reducer = reducers[key];
if (isObservable(reducer)) {
return reducer;
}
return reduce(reducer);
}).concat([function () {
for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {
values[_key] = arguments[_key];
}
return values.reduce(function (acc, val, index) {
acc[keys[index]] = val;
return acc;
}, {});
}]));
};
}
module.exports = exports['default'];