Skip to content

Commit 8f2dcda

Browse files
fix(StateBuilder): When chaining state decorators, lazy eval each step in the chain.
- reduce each step to a fn that takes the state, then call the chain with the state
1 parent 3860cec commit 8f2dcda

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/state/stateBuilder.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,9 @@ export default function StateBuilder(root, matcher, $urlMatcherFactoryProvider)
126126

127127
for (let key in builders) {
128128
if (!builders.hasOwnProperty(key)) continue;
129-
let steps = isArray(builders[key]) ? builders[key].reverse() : [builders[key]];
130-
let chainFns = (memo, step) => step(state, memo);
131-
state[key] = steps.reduce(chainFns, noop);
129+
let steps = isArray(builders[key]) ? builders[key] : [builders[key]];
130+
let chain = steps.reduce((parentFn, step) => (state) => step(state, parentFn), noop);
131+
state[key] = chain(state);
132132
}
133133
return state;
134134
},

0 commit comments

Comments
 (0)