46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { DocumentNode } from '../language/ast';
|
|
import { GraphQLSchemaValidationOptions, GraphQLSchema } 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;
|