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 7x 2x   5x 5x 5x   17x 29x 10x          
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;