From b542e6c165dafbc53bea9e474fc731373f5a5494 Mon Sep 17 00:00:00 2001 From: Divyendu Singh Date: Sat, 10 Mar 2018 14:32:35 +0530 Subject: [PATCH] conform with structure of graphql-js in graphql typings --- types/graphql/type/schema.d.ts | 21 ++++++++++++++ types/graphql/utilities/buildASTSchema.d.ts | 32 ++++++++++++++------- 2 files changed, 42 insertions(+), 11 deletions(-) diff --git a/types/graphql/type/schema.d.ts b/types/graphql/type/schema.d.ts index 3263274dd9..26500c6ed3 100644 --- a/types/graphql/type/schema.d.ts +++ b/types/graphql/type/schema.d.ts @@ -61,6 +61,27 @@ export class GraphQLSchema { getDirective(name: string): GraphQLDirective; } +export type GraphQLSchemaValidationOptions = { + /** + * When building a schema from a GraphQL service's introspection result, it + * might be safe to assume the schema is valid. Set to true to assume the + * produced schema is valid. + * + * Default: false + */ + assumeValid?: boolean; + + /** + * If provided, the schema will consider fields or types with names included + * in this list valid, even if they do not adhere to the specification's + * schema validation rules. + * + * This option is provided to ease adoption and may be removed in a future + * major release. + */ + allowedLegacyNames?: ReadonlyArray; +}; + export interface GraphQLSchemaConfig { query: GraphQLObjectType; mutation?: GraphQLObjectType; diff --git a/types/graphql/utilities/buildASTSchema.d.ts b/types/graphql/utilities/buildASTSchema.d.ts index 8ba2fcc9e9..6b8aa56327 100644 --- a/types/graphql/utilities/buildASTSchema.d.ts +++ b/types/graphql/utilities/buildASTSchema.d.ts @@ -1,12 +1,17 @@ import { DocumentNode, Location, StringValueNode } from '../language/ast'; import { Source } from '../language/source'; -import { GraphQLSchema } from '../type/schema'; +import { GraphQLSchema, GraphQLSchemaValidationOptions } from '../type/schema'; -type BuildSchemaOptions = { - assumeValid?: boolean; - allowedLegacyNames?: ReadonlyArray; - commentDescriptions?: boolean; -}; +interface BuildSchemaOptions 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. + * + * Default: false + */ + commentDescriptions?: boolean; +} /** * This takes the ast of a schema document produced by the parse function in @@ -21,13 +26,18 @@ type BuildSchemaOptions = { export function buildASTSchema(ast: DocumentNode): GraphQLSchema; /** - * Given an ast node, returns its string description based on a contiguous - * block full-line of comments preceding it. + * Given an ast node, returns its string description. + * + * Accepts options as a second argument: + * + * - commentDescriptions: + * Provide true to use preceding comments as the description. + * */ export function getDescription( - node: { description?: StringValueNode; loc?: Location }, - options: BuildSchemaOptions - ): string; + node: { description?: StringValueNode; loc?: Location }, + options: BuildSchemaOptions +): string; /** * A helper function to build a GraphQLSchema directly from a source