UNPKG

@graphql-mocks/falso

Version:

Fake GraphQL queries with graphql-mocks and Falso

51 lines (50 loc) 2.85 kB
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } import { highlightAllCallback } from 'graphql-mocks/resolver-map/utils'; import { falsoFieldResolver } from './falso-field-resolver.mjs'; import { falsoTypeResolver } from './falso-type-resolver.mjs'; import { fromResolverMap, field, interfaceField, combine, union, interfaces } from 'graphql-mocks/highlight'; import { coerceHighlight, walk } from 'graphql-mocks/highlight/utils'; import { setResolver } from 'graphql-mocks/resolver-map'; function falsoMiddleware(options) { var falsoOptions = options !== null && options !== void 0 ? options : {}; return /*#__PURE__*/function () { var _ref = _asyncToGenerator(function* (resolverMap, packOptions) { var _options$highlight; var graphqlSchema = packOptions.dependencies.graphqlSchema; var highlight = coerceHighlight(graphqlSchema, (_options$highlight = options === null || options === void 0 ? void 0 : options.highlight) !== null && _options$highlight !== void 0 ? _options$highlight : highlightAllCallback); // If we can't replace resolvers, exclude the ones that exist in the resolver map if (!(options !== null && options !== void 0 && options.replace)) { highlight = highlight.exclude(fromResolverMap(resolverMap)); } var fieldResolvableHighlight = highlight.filter(field()).exclude(interfaceField()); var fieldResolver = falsoFieldResolver(falsoOptions); yield walk(graphqlSchema, fieldResolvableHighlight.references, _ref2 => { var { reference } = _ref2; setResolver(resolverMap, reference, fieldResolver, { graphqlSchema, replace: options === null || options === void 0 ? void 0 : options.replace }); }); var typeResolvableHighlight = highlight.filter(combine(union(), interfaces())); var typeResolver = falsoTypeResolver(); yield walk(graphqlSchema, typeResolvableHighlight.references, _ref3 => { var { reference } = _ref3; setResolver(resolverMap, reference, typeResolver, { graphqlSchema, replace: options === null || options === void 0 ? void 0 : options.replace }); }); return resolverMap; }); return function (_x, _x2) { return _ref.apply(this, arguments); }; }(); } export { falsoMiddleware }; //# sourceMappingURL=falso-middleware.mjs.map