fanfanpsu / reduce-reducers

Reduce multiple reducers into a single reducer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

reduce-reducers

build status npm version

Reduce multiple reducers into a single reducer from left to right.

npm install --save reduce-reducers

Example

const reducer = reduceReducers(
  (prev, curr) => ({...prev, A: prev.A + curr}),
  (prev, curr) => ({...prev, B: prev.B * curr}),
);

expect(reducer({ A: 1, B: 2 }, 3)).to.deep.equal({ A: 4, B: 6 });
expect(reducer({ A: 5, B: 8 }, 13)).to.deep.equal({ A: 18, B: 104 });

Why?

Originally created to combine multiple Redux reducers that correspond to different actions (e.g. like this). Technically works with any reducer, not just with Redux, though I don't know of any other use cases.

About

Reduce multiple reducers into a single reducer.


Languages

Language:JavaScript 72.3%Language:Makefile 27.7%