UNPKG

graphql-resolvers

Version:
36 lines (29 loc) 1.13 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.pipeResolvers = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); /** * Resolver composition based on the root argument. * * @param {[Function]} ...funcs Resolver implementations. * @return {Promise}. */ var pipeResolvers = function pipeResolvers() { for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } return function () { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return funcs.reduce(function (prevPromise, resolver) { return prevPromise.then(function (root) { return root instanceof Error ? root : resolver.apply(void 0, [root].concat((0, _toConsumableArray2["default"])(args.slice(1)))); }); }, Promise.resolve(args[0])); }; }; exports.pipeResolvers = pipeResolvers;