From b2c738dc64a5e282d43f785cd2c2bf031f0c6979 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Mon, 4 Sep 2017 22:33:22 +0300 Subject: [PATCH] Add astNode properties to GraphQL types --- types/graphql/type/definition.d.ts | 32 ++++++++++++++++++++++++++++++ types/graphql/type/directives.d.ts | 5 ++++- types/graphql/type/schema.d.ts | 5 +++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/types/graphql/type/definition.d.ts b/types/graphql/type/definition.d.ts index 5b0a2e9181..a4a52198b8 100644 --- a/types/graphql/type/definition.d.ts +++ b/types/graphql/type/definition.d.ts @@ -1,4 +1,14 @@ import { + ScalarTypeDefinitionNode, + ObjectTypeDefinitionNode, + FieldDefinitionNode, + InputValueDefinitionNode, + InterfaceTypeDefinitionNode, + UnionTypeDefinitionNode, + EnumTypeDefinitionNode, + EnumValueDefinitionNode, + InputObjectTypeDefinitionNode, + TypeExtensionDefinitionNode, OperationDefinitionNode, FieldNode, FragmentDefinitionNode, @@ -156,6 +166,7 @@ export type Thunk = (() => T) | T; export class GraphQLScalarType { name: string; description: string; + astNode?: ScalarTypeDefinitionNode; constructor(config: GraphQLScalarTypeConfig); // Serializes an internal value to include in a response. @@ -173,6 +184,7 @@ export class GraphQLScalarType { export interface GraphQLScalarTypeConfig { name: string; description?: string; + astNode?: ScalarTypeDefinitionNode; serialize(value: any): TExternal | null | undefined; parseValue?(value: any): TInternal | null | undefined; parseLiteral?(valueNode: ValueNode): TInternal | null | undefined; @@ -218,6 +230,8 @@ export interface GraphQLScalarTypeConfig { export class GraphQLObjectType { name: string; description: string; + astNode?: ObjectTypeDefinitionNode; + extensionASTNodes: Array; isTypeOf: GraphQLIsTypeOfFn; constructor(config: GraphQLObjectTypeConfig); @@ -232,6 +246,8 @@ export interface GraphQLObjectTypeConfig { fields: Thunk>; isTypeOf?: GraphQLIsTypeOfFn; description?: string; + astNode?: ObjectTypeDefinitionNode; + extensionASTNodes?: Array; } export type GraphQLTypeResolver = ( @@ -274,6 +290,7 @@ export interface GraphQLFieldConfig { resolve?: GraphQLFieldResolver; deprecationReason?: string; description?: string; + astNode?: FieldDefinitionNode; } export interface GraphQLFieldConfigArgumentMap { @@ -284,6 +301,7 @@ export interface GraphQLArgumentConfig { type: GraphQLInputType; defaultValue?: any; description?: string; + astNode?: InputValueDefinitionNode; } export interface GraphQLFieldConfigMap { @@ -298,6 +316,7 @@ export interface GraphQLField { resolve?: GraphQLFieldResolver; isDeprecated?: boolean; deprecationReason?: string; + astNode?: FieldDefinitionNode; } export interface GraphQLArgument { @@ -305,6 +324,7 @@ export interface GraphQLArgument { type: GraphQLInputType; defaultValue?: any; description?: string; + astNode?: InputValueDefinitionNode; } export interface GraphQLFieldMap { @@ -332,6 +352,7 @@ export interface GraphQLFieldMap { export class GraphQLInterfaceType { name: string; description: string; + astNode?: InterfaceTypeDefinitionNode; resolveType: GraphQLTypeResolver; constructor(config: GraphQLInterfaceTypeConfig); @@ -351,6 +372,7 @@ export interface GraphQLInterfaceTypeConfig { */ resolveType?: GraphQLTypeResolver; description?: string; + astNode?: InterfaceTypeDefinitionNode; } /** @@ -379,6 +401,7 @@ export interface GraphQLInterfaceTypeConfig { export class GraphQLUnionType { name: string; description: string; + astNode?: UnionTypeDefinitionNode; resolveType: GraphQLTypeResolver; constructor(config: GraphQLUnionTypeConfig); @@ -398,6 +421,7 @@ export interface GraphQLUnionTypeConfig { */ resolveType?: GraphQLTypeResolver; description?: string; + astNode?: UnionTypeDefinitionNode; } /** @@ -424,6 +448,7 @@ export interface GraphQLUnionTypeConfig { export class GraphQLEnumType { name: string; description: string; + astNode?: EnumTypeDefinitionNode; constructor(config: GraphQLEnumTypeConfig); getValues(): GraphQLEnumValue[]; @@ -438,6 +463,7 @@ export interface GraphQLEnumTypeConfig { name: string; values: GraphQLEnumValueConfigMap; description?: string; + astNode?: EnumTypeDefinitionNode; } export interface GraphQLEnumValueConfigMap { @@ -448,6 +474,7 @@ export interface GraphQLEnumValueConfig { value?: any; deprecationReason?: string; description?: string; + astNode?: EnumValueDefinitionNode; } export interface GraphQLEnumValue { @@ -455,6 +482,7 @@ export interface GraphQLEnumValue { description: string; isDeprecated?: boolean; deprecationReason: string; + astNode?: EnumValueDefinitionNode; value: any; } @@ -481,6 +509,7 @@ export interface GraphQLEnumValue { export class GraphQLInputObjectType { name: string; description: string; + astNode?: InputObjectTypeDefinitionNode; constructor(config: GraphQLInputObjectTypeConfig); getFields(): GraphQLInputFieldMap; toString(): string; @@ -490,12 +519,14 @@ export interface GraphQLInputObjectTypeConfig { name: string; fields: Thunk; description?: string; + astNode?: InputObjectTypeDefinitionNode; } export interface GraphQLInputFieldConfig { type: GraphQLInputType; defaultValue?: any; description?: string; + astNode?: InputValueDefinitionNode; } export interface GraphQLInputFieldConfigMap { @@ -507,6 +538,7 @@ export interface GraphQLInputField { type: GraphQLInputType; defaultValue?: any; description?: string; + astNode?: InputValueDefinitionNode; } export interface GraphQLInputFieldMap { diff --git a/types/graphql/type/directives.d.ts b/types/graphql/type/directives.d.ts index aed6234ef5..81befa9eba 100644 --- a/types/graphql/type/directives.d.ts +++ b/types/graphql/type/directives.d.ts @@ -2,6 +2,7 @@ import { GraphQLFieldConfigArgumentMap, GraphQLArgument } from './definition'; +import { DirectiveDefinitionNode } from '../language/ast'; export const DirectiveLocation: { // Operations @@ -34,9 +35,10 @@ export type DirectiveLocationEnum = keyof typeof DirectiveLocation; */ export class GraphQLDirective { name: string; - description: string; + description?: string; locations: DirectiveLocationEnum[]; args: GraphQLArgument[]; + astNode?: DirectiveDefinitionNode; constructor(config: GraphQLDirectiveConfig); } @@ -46,6 +48,7 @@ export interface GraphQLDirectiveConfig { description?: string; locations: DirectiveLocationEnum[]; args?: GraphQLFieldConfigArgumentMap; + astNode?: DirectiveDefinitionNode; } /** diff --git a/types/graphql/type/schema.d.ts b/types/graphql/type/schema.d.ts index 2d0c5c7f3d..91edbdbea0 100644 --- a/types/graphql/type/schema.d.ts +++ b/types/graphql/type/schema.d.ts @@ -6,6 +6,9 @@ import { GraphQLNamedType, GraphQLAbstractType } from './definition'; +import { + SchemaDefinitionNode +} from '../language/ast'; import { GraphQLDirective, } from './directives'; @@ -37,6 +40,7 @@ import { * */ export class GraphQLSchema { + astNode?: SchemaDefinitionNode; // private _queryType: GraphQLObjectType; // private _mutationType: GraphQLObjectType; // private _subscriptionType: GraphQLObjectType; @@ -69,4 +73,5 @@ export interface GraphQLSchemaConfig { subscription?: GraphQLObjectType; types?: GraphQLNamedType[]; directives?: GraphQLDirective[]; + astNode?: SchemaDefinitionNode; }