fluorine-lib
Version:
Reactive state and side effect management for React using a single stream of actions
26 lines (22 loc) • 742 B
JavaScript
import { combineLatest } from 'rxjs/observable/combineLatest';
import isObservable from './util/isObservable';
export default 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;
}, {});
}]));
};
}