Skip to content

Commit 69ffdfd

Browse files
Xiaohan Zhangtimche
Xiaohan Zhang
authored andcommitted
Support additional arguments for reducer
* resolve acdlite/redux-actions/issues#148
1 parent 03d23a4 commit 69ffdfd

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export default (...reducers) => (previous, current) =>
2-
reducers.reduce((p, r) => r(p, current), previous);
1+
export default (...reducers) => (previous, current, ...args) =>
2+
reducers.reduce((p, r) => r(p, current, ...args), previous);

test/index.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,17 @@ test('chains multiple reducers into a single reducer', t => {
2020
t.deepEqual(reducerAddMult({ A: 1, B: 2 }, 3), { A: 12, B: 2 });
2121
t.deepEqual(reducerMultAdd({ A: 1, B: 2 }, 3), { A: 6, B: 2 });
2222
});
23+
24+
test('supports additional arguments', t => {
25+
const addReducer = (prev, curr, scale) => ({
26+
...prev,
27+
A: (prev.A + curr) * scale
28+
});
29+
const multReducer = (prev, curr, scale) => ({
30+
...prev,
31+
A: prev.A * curr * scale
32+
});
33+
const reducerAddMult = reduceReducers(addReducer, multReducer);
34+
35+
t.deepEqual(reducerAddMult({ A: 1, B: 2 }, 3, 2), { A: 48, B: 2 });
36+
});

0 commit comments

Comments
 (0)