Skip to content

Commit c2f42fc

Browse files
committed
SDL Spec changes
This adds the recent changes to the SDL proposal.
1 parent cf0ded8 commit c2f42fc

File tree

7 files changed

+343
-80
lines changed

7 files changed

+343
-80
lines changed

src/language/ast.js

+57-7
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,12 @@ export type ASTNode =
151151
| EnumTypeDefinitionNode
152152
| EnumValueDefinitionNode
153153
| InputObjectTypeDefinitionNode
154+
| ScalarTypeExtensionNode
154155
| ObjectTypeExtensionNode
156+
| InterfaceTypeExtensionNode
157+
| UnionTypeExtensionNode
158+
| EnumTypeExtensionNode
159+
| InputObjectTypeExtensionNode
155160
| DirectiveDefinitionNode;
156161

157162
// Name
@@ -398,15 +403,15 @@ export type ObjectTypeDefinitionNode = {
398403
name: NameNode,
399404
interfaces?: ?Array<NamedTypeNode>,
400405
directives?: ?Array<DirectiveNode>,
401-
fields: Array<FieldDefinitionNode>,
406+
fields?: ?Array<FieldDefinitionNode>,
402407
};
403408

404409
export type FieldDefinitionNode = {
405410
kind: 'FieldDefinition',
406411
loc?: Location,
407412
description?: ?StringValueNode,
408413
name: NameNode,
409-
arguments: Array<InputValueDefinitionNode>,
414+
arguments?: ?Array<InputValueDefinitionNode>,
410415
type: TypeNode,
411416
directives?: ?Array<DirectiveNode>,
412417
};
@@ -427,7 +432,7 @@ export type InterfaceTypeDefinitionNode = {
427432
description?: ?StringValueNode,
428433
name: NameNode,
429434
directives?: ?Array<DirectiveNode>,
430-
fields: Array<FieldDefinitionNode>,
435+
fields?: ?Array<FieldDefinitionNode>,
431436
};
432437

433438
export type UnionTypeDefinitionNode = {
@@ -436,7 +441,7 @@ export type UnionTypeDefinitionNode = {
436441
description?: ?StringValueNode,
437442
name: NameNode,
438443
directives?: ?Array<DirectiveNode>,
439-
types: Array<NamedTypeNode>,
444+
types?: ?Array<NamedTypeNode>,
440445
};
441446

442447
export type EnumTypeDefinitionNode = {
@@ -445,7 +450,7 @@ export type EnumTypeDefinitionNode = {
445450
description?: ?StringValueNode,
446451
name: NameNode,
447452
directives?: ?Array<DirectiveNode>,
448-
values: Array<EnumValueDefinitionNode>,
453+
values?: ?Array<EnumValueDefinitionNode>,
449454
};
450455

451456
export type EnumValueDefinitionNode = {
@@ -462,12 +467,25 @@ export type InputObjectTypeDefinitionNode = {
462467
description?: ?StringValueNode,
463468
name: NameNode,
464469
directives?: ?Array<DirectiveNode>,
465-
fields: Array<InputValueDefinitionNode>,
470+
fields?: ?Array<InputValueDefinitionNode>,
466471
};
467472

468473
// Type Extensions
469474

470-
export type TypeExtensionNode = ObjectTypeExtensionNode;
475+
export type TypeExtensionNode =
476+
| ScalarTypeExtensionNode
477+
| ObjectTypeExtensionNode
478+
| InterfaceTypeExtensionNode
479+
| UnionTypeExtensionNode
480+
| EnumTypeExtensionNode
481+
| InputObjectTypeExtensionNode;
482+
483+
export type ScalarTypeExtensionNode = {
484+
kind: 'ScalarTypeExtension',
485+
loc?: Location,
486+
name: NameNode,
487+
directives?: ?Array<DirectiveNode>,
488+
};
471489

472490
export type ObjectTypeExtensionNode = {
473491
kind: 'ObjectTypeExtension',
@@ -478,6 +496,38 @@ export type ObjectTypeExtensionNode = {
478496
fields?: ?Array<FieldDefinitionNode>,
479497
};
480498

499+
export type InterfaceTypeExtensionNode = {
500+
kind: 'InterfaceTypeExtension',
501+
loc?: Location,
502+
name: NameNode,
503+
directives?: ?Array<DirectiveNode>,
504+
fields?: ?Array<FieldDefinitionNode>,
505+
};
506+
507+
export type UnionTypeExtensionNode = {
508+
kind: 'UnionTypeExtension',
509+
loc?: Location,
510+
name: NameNode,
511+
directives?: ?Array<DirectiveNode>,
512+
types?: ?Array<NamedTypeNode>,
513+
};
514+
515+
export type EnumTypeExtensionNode = {
516+
kind: 'EnumTypeExtension',
517+
loc?: Location,
518+
name: NameNode,
519+
directives?: ?Array<DirectiveNode>,
520+
values?: ?Array<EnumValueDefinitionNode>,
521+
};
522+
523+
export type InputObjectTypeExtensionNode = {
524+
kind: 'InputObjectTypeExtension',
525+
loc?: Location,
526+
name: NameNode,
527+
directives?: ?Array<DirectiveNode>,
528+
fields?: ?Array<InputValueDefinitionNode>,
529+
};
530+
481531
// Directive Definitions
482532

483533
export type DirectiveDefinitionNode = {

src/language/kinds.js

+5
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,12 @@ export const INPUT_OBJECT_TYPE_DEFINITION = 'InputObjectTypeDefinition';
6868

6969
// Type Extensions
7070

71+
export const SCALAR_TYPE_EXTENSION = 'ScalarTypeExtension';
7172
export const OBJECT_TYPE_EXTENSION = 'ObjectTypeExtension';
73+
export const INTERFACE_TYPE_EXTENSION = 'InterfaceTypeExtension';
74+
export const UNION_TYPE_EXTENSION = 'UnionTypeExtension';
75+
export const ENUM_TYPE_EXTENSION = 'EnumTypeExtension';
76+
export const INPUT_OBJECT_TYPE_EXTENSION = 'InputObjectTypeExtension';
7277

7378
// Directive Definitions
7479

0 commit comments

Comments
 (0)