123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import devAssert from "../jsutils/devAssert.mjs";
- import { Kind } from "../language/kinds.mjs";
- import { parse } from "../language/parser.mjs";
- import { assertValidSDL } from "../validation/validate.mjs";
- import { GraphQLSchema } from "../type/schema.mjs";
- import { specifiedDirectives } from "../type/directives.mjs";
- import { extendSchemaImpl } from "./extendSchema.mjs";
- export function buildASTSchema(documentAST, options) {
- documentAST != null && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST.');
- if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {
- assertValidSDL(documentAST);
- }
- var emptySchemaConfig = {
- description: undefined,
- types: [],
- directives: [],
- extensions: undefined,
- extensionASTNodes: [],
- assumeValid: false
- };
- var config = extendSchemaImpl(emptySchemaConfig, documentAST, options);
- if (config.astNode == null) {
- for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {
- var type = _config$types2[_i2];
- switch (type.name) {
-
-
-
- case 'Query':
- config.query = type;
- break;
- case 'Mutation':
- config.mutation = type;
- break;
- case 'Subscription':
- config.subscription = type;
- break;
- }
- }
- }
- var directives = config.directives;
- var _loop = function _loop(_i4) {
- var stdDirective = specifiedDirectives[_i4];
- if (directives.every(function (directive) {
- return directive.name !== stdDirective.name;
- })) {
- directives.push(stdDirective);
- }
- };
- for (var _i4 = 0; _i4 < specifiedDirectives.length; _i4++) {
- _loop(_i4);
- }
- return new GraphQLSchema(config);
- }
- export function buildSchema(source, options) {
- var document = parse(source, {
- noLocation: options === null || options === void 0 ? void 0 : options.noLocation,
- allowLegacySDLEmptyFields: options === null || options === void 0 ? void 0 : options.allowLegacySDLEmptyFields,
- allowLegacySDLImplementsInterfaces: options === null || options === void 0 ? void 0 : options.allowLegacySDLImplementsInterfaces,
- experimentalFragmentVariables: options === null || options === void 0 ? void 0 : options.experimentalFragmentVariables
- });
- return buildASTSchema(document, {
- commentDescriptions: options === null || options === void 0 ? void 0 : options.commentDescriptions,
- assumeValidSDL: options === null || options === void 0 ? void 0 : options.assumeValidSDL,
- assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid
- });
- }
|