All files combineResolvers.js

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

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                147x 99x   220x      
import { skip } from './utils'
 
/**
 * Left-first composition for methods of any type.
 *
 * @param {[Function]} ...funcs Resolver implementations.
 * @return {Promise}.
 */
export const combineResolvers = (...funcs) => (...args) =>
  funcs.reduce(
    (prevPromise, resolver) =>
      prevPromise.then(prev => (prev === skip ? resolver(...args) : prev)),
    Promise.resolve()
  )