import Maybe from '../tsutils/Maybe'; import { Location, DocumentNode, StringValueNode } from '../language/ast'; import { GraphQLSchemaValidationOptions, GraphQLSchema, GraphQLSchemaNormalizedConfig, } from '../type/schema'; interface Options extends GraphQLSchemaValidationOptions { /** * Descriptions are defined as preceding string literals, however an older * experimental version of the SDL supported preceding comments as * descriptions. Set to true to enable this deprecated behavior. * This option is provided to ease adoption and will be removed in v16. * * Default: false */ commentDescriptions?: boolean; /** * Set to true to assume the SDL is valid. * * Default: false */ assumeValidSDL?: boolean; } /** * Produces a new schema given an existing schema and a document which may * contain GraphQL type extensions and definitions. The original schema will * remain unaltered. * * Because a schema represents a graph of references, a schema cannot be * extended without effectively making an entire copy. We do not know until it's * too late if subgraphs remain unchanged. * * This algorithm copies the provided schema, applying extensions while * producing the copy. The original schema remains unaltered. * * Accepts options as a third argument: * * - commentDescriptions: * Provide true to use preceding comments as the description. * */ export function extendSchema( schema: GraphQLSchema, documentAST: DocumentNode, options?: Options, ): GraphQLSchema; /** * @internal */ export function extendSchemaImpl( schemaConfig: GraphQLSchemaNormalizedConfig, documentAST: DocumentNode, options?: Options, ): GraphQLSchemaNormalizedConfig; /** * Given an ast node, returns its string description. * @deprecated: provided to ease adoption and will be removed in v16. * * Accepts options as a second argument: * * - commentDescriptions: * Provide true to use preceding comments as the description. * */ export function getDescription( node: { readonly description?: StringValueNode; readonly loc?: Location }, options?: Maybe<{ commentDescriptions?: boolean }>, ): string | undefined;