1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 1x 5x 2x 3x 3x 3x 3x 1x 1x | const compose = (...adapters) => { if (adapters.length === 0) { throw new Error('redux-api-call: composeAdatpers must take at least one adapter') } const reversed = adapters.reverse(); const head = reversed[0]; const tail = reversed.slice(1); return getState => tail.reduce( (acc, current) => current(acc, getState), head(x => x, getState) ); } export default compose; |