graphql-resolvers
Version:
Resolver composition library for GraphQL.
34 lines (28 loc) • 920 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.combineResolvers = void 0;
var _utils = require("./utils");
/**
* Left-first composition for methods of any type.
*
* @param {[Function]} ...funcs Resolver implementations.
* @return {Promise}.
*/
var combineResolvers = function combineResolvers() {
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 (prev) {
return prev === _utils.skip ? resolver.apply(void 0, args) : prev;
});
}, Promise.resolve());
};
};
exports.combineResolvers = combineResolvers;