UNPKG

graphql-mocks

Version:
63 lines (44 loc) 2.79 kB
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } import { isObjectType, isAbstractType } from 'graphql'; import { WrapperFor } from './constants.js'; function isNamedWrapper(wrapper) { return wrapper && 'name' in wrapper && 'wrap' in wrapper; } function applyWrappers(_x, _x2, _x3) { return _applyWrappers.apply(this, arguments); } function _applyWrappers() { _applyWrappers = _asyncToGenerator(function* (resolver, wrappers, wrapperOptions) { wrappers = [...wrappers]; var wrapper = wrappers.shift(); if (typeof resolver !== 'function') { throw new Error("Resolver for wrapResolver must be a function, got ".concat(typeof resolver)); } if (!wrapper) { return resolver; } var wrapperName = wrapper.name || 'UNNAMED'; if (isNamedWrapper(wrapper)) { var namedWrapper = wrapper; wrapperName = namedWrapper.name; var wrapperFor = namedWrapper.wrapperFor; if (wrapperFor === WrapperFor.FIELD && !isObjectType(wrapperOptions.type)) { var _wrapperOptions$field; throw new Error("Wrapper \"".concat(wrapperName, "\" is for FIELD resolvers and can't wrap [\"").concat(wrapperOptions.type.name, "\", \"").concat((_wrapperOptions$field = wrapperOptions.field) === null || _wrapperOptions$field === void 0 ? void 0 : _wrapperOptions$field.name, "\"].")); } if (wrapperFor === WrapperFor.TYPE && !isAbstractType(wrapperOptions.type)) { throw new Error("Wrapper \"".concat(wrapperName, "\" is for TYPE resolvers and can't wrap [\"").concat(wrapperOptions.type.name, "\"].")); } wrapper = wrapper.wrap.bind(wrapper); } // eslint-disable-next-line @typescript-eslint/no-explicit-any var wrappedResolver = yield wrapper(resolver, wrapperOptions); if (typeof wrappedResolver !== 'function') { throw new Error("Wrapper \"".concat(wrapperName, "\" was not a function or did not have a wrap method, got ").concat(typeof wrappedResolver, ".")); } return applyWrappers(wrappedResolver, wrappers, wrapperOptions); }); return _applyWrappers.apply(this, arguments); } export { applyWrappers }; //# sourceMappingURL=apply-wrappers.js.map