1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 3x 5x 1x 4x 4x 4x 16x 15x 8x | 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; |