All files pipeResolvers.js

100% Statements 8/8
100% Branches 2/2
100% Functions 5/5
100% Lines 4/4
1 2 3 4 5 6 7 8 9 10 11 12 13              482x 121x 120x   2x  
 
/**
 * 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])
).catch(err => err)