Skip to content

Commit 70b7dbd

Browse files
fix: Updates visitor traversal paths
Aligns with graphql-js and supports Extension nodes
1 parent ff92fd2 commit 70b7dbd

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

Sources/GraphQL/Language/Visitor.swift

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ let QueryDocumentKeys: [Kind: [String]] = [
1717
.floatValue: [],
1818
.stringValue: [],
1919
.booleanValue: [],
20+
.nullValue: [],
2021
.enumValue: [],
2122
.listValue: ["values"],
2223
.objectValue: ["fields"],
@@ -28,22 +29,29 @@ let QueryDocumentKeys: [Kind: [String]] = [
2829
.listType: ["type"],
2930
.nonNullType: ["type"],
3031

31-
.schemaDefinition: ["directives", "operationTypes"],
32+
.schemaDefinition: ["description", "directives", "operationTypes"],
3233
.operationTypeDefinition: ["type"],
3334

34-
.scalarTypeDefinition: ["name", "directives"],
35-
.objectTypeDefinition: ["name", "interfaces", "directives", "fields"],
36-
.fieldDefinition: ["name", "arguments", "type", "directives"],
37-
.inputValueDefinition: ["name", "type", "defaultValue", "directives"],
38-
.interfaceTypeDefinition: ["name", "interfaces", "directives", "fields"],
39-
.unionTypeDefinition: ["name", "directives", "types"],
40-
.enumTypeDefinition: ["name", "directives", "values"],
41-
.enumValueDefinition: ["name", "directives"],
42-
.inputObjectTypeDefinition: ["name", "directives", "fields"],
43-
44-
.typeExtensionDefinition: ["definition"],
45-
46-
.directiveDefinition: ["name", "arguments", "locations"],
35+
.scalarTypeDefinition: ["description", "name", "directives"],
36+
.objectTypeDefinition: ["description", "name", "interfaces", "directives", "fields"],
37+
.fieldDefinition: ["description", "name", "arguments", "type", "directives"],
38+
.inputValueDefinition: ["description", "name", "type", "defaultValue", "directives"],
39+
.interfaceTypeDefinition: ["description", "name", "interfaces", "directives", "fields"],
40+
.unionTypeDefinition: ["description", "name", "directives", "types"],
41+
.enumTypeDefinition: ["description", "name", "directives", "values"],
42+
.enumValueDefinition: ["description", "name", "directives"],
43+
.inputObjectTypeDefinition: ["description", "name", "directives", "fields"],
44+
45+
.directiveDefinition: ["description", "name", "arguments", "locations"],
46+
47+
.schemaExtensionDefinition: ["directives", "operationTypes"],
48+
49+
.scalarExtensionDefinition: ["name", "directives"],
50+
.typeExtensionDefinition: ["name", "interfaces", "directives", "fields"],
51+
.interfaceExtensionDefinition: ["name", "interfaces", "directives", "fields"],
52+
.unionExtensionDefinition: ["name", "directives", "types"],
53+
.enumExtensionDefinition: ["name", "directives", "values"],
54+
.inputObjectExtensionDefinition: ["name", "directives", "fields"],
4755
]
4856

4957
/**

0 commit comments

Comments
 (0)