diff --git a/src/language/ast.js b/src/language/ast.js index 8a1a527fd4..6325c25ef4 100644 --- a/src/language/ast.js +++ b/src/language/ast.js @@ -124,14 +124,14 @@ export type ASTNode = | EnumTypeDefinitionNode | EnumValueDefinitionNode | InputObjectTypeDefinitionNode + | DirectiveDefinitionNode | SchemaExtensionNode | ScalarTypeExtensionNode | ObjectTypeExtensionNode | InterfaceTypeExtensionNode | UnionTypeExtensionNode | EnumTypeExtensionNode - | InputObjectTypeExtensionNode - | DirectiveDefinitionNode; + | InputObjectTypeExtensionNode; /** * Utility type listing all nodes indexed by their kind. @@ -172,6 +172,7 @@ export type ASTKindToNode = { EnumTypeDefinition: EnumTypeDefinitionNode, EnumValueDefinition: EnumValueDefinitionNode, InputObjectTypeDefinition: InputObjectTypeDefinitionNode, + DirectiveDefinition: DirectiveDefinitionNode, SchemaExtension: SchemaExtensionNode, ScalarTypeExtension: ScalarTypeExtensionNode, ObjectTypeExtension: ObjectTypeExtensionNode, @@ -179,7 +180,6 @@ export type ASTKindToNode = { UnionTypeExtension: UnionTypeExtensionNode, EnumTypeExtension: EnumTypeExtensionNode, InputObjectTypeExtension: InputObjectTypeExtensionNode, - DirectiveDefinition: DirectiveDefinitionNode, }; // Name @@ -390,8 +390,8 @@ export type NonNullTypeNode = { export type TypeSystemDefinitionNode = | SchemaDefinitionNode | TypeDefinitionNode - | TypeSystemExtensionNode - | DirectiveDefinitionNode; + | DirectiveDefinitionNode + | TypeSystemExtensionNode; export type SchemaDefinitionNode = { +kind: 'SchemaDefinition', diff --git a/src/language/kinds.js b/src/language/kinds.js index 40f40b1ffa..c6f1587ee4 100644 --- a/src/language/kinds.js +++ b/src/language/kinds.js @@ -62,6 +62,9 @@ export const Kind = Object.freeze({ ENUM_VALUE_DEFINITION: 'EnumValueDefinition', INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition', + // Directive Definitions + DIRECTIVE_DEFINITION: 'DirectiveDefinition', + // Type System Extensions SCHEMA_EXTENSION: 'SchemaExtension', @@ -72,9 +75,6 @@ export const Kind = Object.freeze({ UNION_TYPE_EXTENSION: 'UnionTypeExtension', ENUM_TYPE_EXTENSION: 'EnumTypeExtension', INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension', - - // Directive Definitions - DIRECTIVE_DEFINITION: 'DirectiveDefinition', }); /** diff --git a/src/language/parser.js b/src/language/parser.js index bc2c23b3bf..366233ca38 100644 --- a/src/language/parser.js +++ b/src/language/parser.js @@ -752,10 +752,10 @@ export function parseNamedType(lexer: Lexer<*>): NamedTypeNode { /** * TypeSystemDefinition : - * - TypeSystemExtension * - SchemaDefinition * - TypeDefinition * - DirectiveDefinition + * - TypeSystemExtension * * TypeDefinition : * - ScalarTypeDefinition @@ -785,10 +785,10 @@ function parseTypeSystemDefinition(lexer: Lexer<*>): TypeSystemDefinitionNode { return parseEnumTypeDefinition(lexer); case 'input': return parseInputObjectTypeDefinition(lexer); - case 'extend': - return parseTypeSystemExtension(lexer); case 'directive': return parseDirectiveDefinition(lexer); + case 'extend': + return parseTypeSystemExtension(lexer); } }