All files pipeResolvers.js

100% Statements 5/5
100% Branches 2/2
100% Functions 4/4
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15            196x 56x   105x 104x        
/**
 * Resolver composition based on the root argument.
 *
 * @param {[Function]} ...funcs Resolver implementations.
 * @return {Promise}.
 */
export const pipeResolvers = (...funcs) => (...args) =>
  funcs.reduce(
    (prevPromise, resolver) =>
      prevPromise.then(root =>
        root instanceof Error ? root : resolver(root, ...args.slice(1))
      ),
    Promise.resolve(args[0])
  )