All files / src composeAdapters.js

100% Statements 10/10
100% Branches 2/2
100% Functions 4/4
100% Lines 9/9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 163x 5x 1x   4x 4x 4x   13x 12x 7x          
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;