Skip to content

Commit 63167b5

Browse files
committed
Cleanup parser changes based on spec discussion
1 parent 62fac26 commit 63167b5

File tree

5 files changed

+20
-38
lines changed

5 files changed

+20
-38
lines changed

src/language/ast.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ export type Document = {
7676
export type Definition = OperationDefinition
7777
| FragmentDefinition
7878
| TypeDefinition
79-
| TypeExtensionDefinition
8079

8180
export type OperationDefinition = {
8281
kind: 'OperationDefinition';
@@ -255,13 +254,13 @@ export type NonNullType = {
255254

256255
// Type Definition
257256

258-
export type TypeDefinition =
259-
ObjectTypeDefinition |
260-
InterfaceTypeDefinition |
261-
UnionTypeDefinition |
262-
ScalarTypeDefinition |
263-
EnumTypeDefinition |
264-
InputObjectTypeDefinition
257+
export type TypeDefinition = ObjectTypeDefinition
258+
| InterfaceTypeDefinition
259+
| UnionTypeDefinition
260+
| ScalarTypeDefinition
261+
| EnumTypeDefinition
262+
| InputObjectTypeDefinition
263+
| TypeExtensionDefinition
265264

266265
export type ObjectTypeDefinition = {
267266
kind: 'ObjectTypeDefinition';
@@ -327,8 +326,6 @@ export type InputObjectTypeDefinition = {
327326
fields: Array<InputValueDefinition>;
328327
}
329328

330-
// Type Extention
331-
332329
export type TypeExtensionDefinition = {
333330
kind: 'TypeExtensionDefinition';
334331
loc?: ?Location;

src/language/kinds.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,4 @@ export const SCALAR_TYPE_DEFINITION = 'ScalarTypeDefinition';
5959
export const ENUM_TYPE_DEFINITION = 'EnumTypeDefinition';
6060
export const ENUM_VALUE_DEFINITION = 'EnumValueDefinition';
6161
export const INPUT_OBJECT_TYPE_DEFINITION = 'InputObjectTypeDefinition';
62-
63-
// Type Extension Definitions
64-
6562
export const TYPE_EXTENSION_DEFINITION = 'TypeExtensionDefinition';

src/language/parser.js

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ function parseDocument(parser): Document {
181181
* - OperationDefinition
182182
* - FragmentDefinition
183183
* - TypeDefinition
184-
* - TypeExtensionDefinition
185184
*/
186185
function parseDefinition(parser): Definition {
187186
if (peek(parser, TokenKind.BRACE_L)) {
@@ -202,9 +201,8 @@ function parseDefinition(parser): Definition {
202201
case 'union':
203202
case 'scalar':
204203
case 'enum':
205-
case 'input': return parseTypeDefinition(parser);
206-
207-
case 'extend': return parseTypeExtensionDefinition(parser);
204+
case 'input':
205+
case 'extend': return parseTypeDefinition(parser);
208206
}
209207
}
210208

@@ -653,6 +651,7 @@ export function parseNamedType(parser): NamedType {
653651
* - ScalarTypeDefinition
654652
* - EnumTypeDefinition
655653
* - InputObjectTypeDefinition
654+
* - TypeExtensionDefinition
656655
*/
657656
function parseTypeDefinition(parser): TypeDefinition {
658657
if (!peek(parser, TokenKind.NAME)) {
@@ -671,16 +670,15 @@ function parseTypeDefinition(parser): TypeDefinition {
671670
return parseEnumTypeDefinition(parser);
672671
case 'input':
673672
return parseInputObjectTypeDefinition(parser);
673+
case 'extend':
674+
return parseTypeExtensionDefinition(parser);
674675
default:
675676
throw unexpected(parser);
676677
}
677678
}
678679

679680
/**
680-
* ObjectTypeDefinition
681-
* - type TypeName ImplementsInterfaces? { FieldDefinition+ }
682-
*
683-
* TypeName : Name
681+
* ObjectTypeDefinition : type Name ImplementsInterfaces? { FieldDefinition+ }
684682
*/
685683
function parseObjectTypeDefinition(parser): ObjectTypeDefinition {
686684
var start = parser.token.start;
@@ -703,7 +701,7 @@ function parseObjectTypeDefinition(parser): ObjectTypeDefinition {
703701
}
704702

705703
/**
706-
* ImplementsInterfaces : `implements` NamedType+
704+
* ImplementsInterfaces : implements NamedType+
707705
*/
708706
function parseImplementsInterfaces(parser): Array<NamedType> {
709707
var types = [];
@@ -717,9 +715,7 @@ function parseImplementsInterfaces(parser): Array<NamedType> {
717715
}
718716

719717
/**
720-
* FieldDefinition : FieldName ArgumentsDefinition? : Type
721-
*
722-
* FieldName : Name
718+
* FieldDefinition : Name ArgumentsDefinition? : Type
723719
*/
724720
function parseFieldDefinition(parser): FieldDefinition {
725721
var start = parser.token.start;
@@ -748,8 +744,6 @@ function parseArgumentDefs(parser): Array<InputValueDefinition> {
748744

749745
/**
750746
* InputValueDefinition : Name : Type DefaultValue?
751-
*
752-
* DefaultValue : = Value[Const]
753747
*/
754748
function parseInputValueDef(parser): InputValueDefinition {
755749
var start = parser.token.start;
@@ -770,7 +764,7 @@ function parseInputValueDef(parser): InputValueDefinition {
770764
}
771765

772766
/**
773-
* InterfaceTypeDefinition : interface TypeName { Fields+ }
767+
* InterfaceTypeDefinition : interface Name { FieldDefinition+ }
774768
*/
775769
function parseInterfaceTypeDefinition(parser): InterfaceTypeDefinition {
776770
var start = parser.token.start;
@@ -791,7 +785,7 @@ function parseInterfaceTypeDefinition(parser): InterfaceTypeDefinition {
791785
}
792786

793787
/**
794-
* UnionTypeDefinition : union TypeName = UnionMembers
788+
* UnionTypeDefinition : union Name = UnionMembers
795789
*/
796790
function parseUnionTypeDefinition(parser): UnionTypeDefinition {
797791
var start = parser.token.start;
@@ -821,7 +815,7 @@ function parseUnionMembers(parser): Array<NamedType> {
821815
}
822816

823817
/**
824-
* ScalarTypeDefinition : scalar TypeName
818+
* ScalarTypeDefinition : scalar Name
825819
*/
826820
function parseScalarTypeDefinition(parser): ScalarTypeDefinition {
827821
var start = parser.token.start;
@@ -835,7 +829,7 @@ function parseScalarTypeDefinition(parser): ScalarTypeDefinition {
835829
}
836830

837831
/**
838-
* EnumTypeDefinition : enum TypeName { EnumValueDefinition+ }
832+
* EnumTypeDefinition : enum Name { EnumValueDefinition+ }
839833
*/
840834
function parseEnumTypeDefinition(parser): EnumTypeDefinition {
841835
var start = parser.token.start;
@@ -871,7 +865,7 @@ function parseEnumValueDefinition(parser) : EnumValueDefinition {
871865
}
872866

873867
/**
874-
* InputObjectTypeDefinition : input TypeName { InputValueDefinition+ }
868+
* InputObjectTypeDefinition : input Name { InputValueDefinition+ }
875869
*/
876870
function parseInputObjectTypeDefinition(parser): InputObjectTypeDefinition {
877871
var start = parser.token.start;
@@ -891,9 +885,6 @@ function parseInputObjectTypeDefinition(parser): InputObjectTypeDefinition {
891885
};
892886
}
893887

894-
895-
// Implements the parsing rules for Type Extension
896-
897888
/**
898889
* TypeExtensionDefinition : extend ObjectTypeDefinition
899890
*/

src/language/printer.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,6 @@ var printDocASTReducer = {
116116
InputObjectTypeDefinition: ({ name, fields }) =>
117117
`input ${name} ${block(fields)}`,
118118

119-
// Type Extension Definition
120-
121119
TypeExtensionDefinition: ({ definition }) => `extend ${definition}`,
122120
};
123121

src/language/visitor.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ export var QueryDocumentKeys = {
4747
EnumTypeDefinition: [ 'name', 'values' ],
4848
EnumValueDefinition: [ 'name' ],
4949
InputObjectTypeDefinition: [ 'name', 'fields' ],
50-
5150
TypeExtensionDefinition: [ 'definition' ],
5251
};
5352

0 commit comments

Comments
 (0)