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) |