UNPKG

fluorine-lib

Version:

Reactive state and side effect management for React using a single stream of actions

23 lines (18 loc) 519 B
import { combineLatest } from 'rxjs/observable/combineLatest' import isObservable from './util/isObservable' export default function combineReducers(reducers) { const keys = Object.keys(reducers) return reduce => combineLatest( ...keys.map(key => { const reducer = reducers[key] if (isObservable(reducer)) { return reducer } return reduce(reducer) }), (...values) => values.reduce((acc, val, index) => { acc[keys[index]] = val return acc }, {}) ) }