1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 1x | const compose = () => { const adapters = Array.toArray(arguments); 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; |