fixSchemaAst.js 989 B

12345678910111213141516171819202122
  1. import { buildASTSchema } from 'graphql';
  2. import { getDocumentNodeFromSchema } from './print-schema-with-directives.js';
  3. function buildFixedSchema(schema, options) {
  4. const document = getDocumentNodeFromSchema(schema);
  5. return buildASTSchema(document, {
  6. ...(options || {}),
  7. });
  8. }
  9. export function fixSchemaAst(schema, options) {
  10. // eslint-disable-next-line no-undef-init
  11. let schemaWithValidAst = undefined;
  12. if (!schema.astNode || !schema.extensionASTNodes) {
  13. schemaWithValidAst = buildFixedSchema(schema, options);
  14. }
  15. if (!schema.astNode && (schemaWithValidAst === null || schemaWithValidAst === void 0 ? void 0 : schemaWithValidAst.astNode)) {
  16. schema.astNode = schemaWithValidAst.astNode;
  17. }
  18. if (!schema.extensionASTNodes && (schemaWithValidAst === null || schemaWithValidAst === void 0 ? void 0 : schemaWithValidAst.astNode)) {
  19. schema.extensionASTNodes = schemaWithValidAst.extensionASTNodes;
  20. }
  21. return schema;
  22. }