8
8
* of patent rights can be found in the PATENTS file in the same directory.
9
9
*/
10
10
11
- import { Source } from './. ./source' ;
11
+ import { Source } from '../source' ;
12
12
13
- import { TokenKind } from './. ./lexer' ;
13
+ import { TokenKind } from '../lexer' ;
14
14
15
15
import {
16
16
ParseOptions ,
@@ -24,27 +24,29 @@ import {
24
24
unexpected ,
25
25
expectKeyword ,
26
26
advance ,
27
- } from './. ./parserCore' ;
27
+ } from '../parserCore' ;
28
28
29
29
import {
30
30
parseName ,
31
- parseNamedType ,
32
31
parseType ,
33
- } from './../parser' ;
32
+ parseNamedType ,
33
+ } from '../parser' ;
34
34
35
- import { NamedType } from '../ast' ;
35
+ import type { NamedType } from '../ast' ;
36
36
37
37
import type {
38
38
SchemaDocument ,
39
+ SchemaDefinition ,
39
40
TypeDefinition ,
40
41
FieldDefinition ,
42
+ ArgumentDefinition ,
41
43
EnumDefinition ,
42
44
EnumValueDefinition ,
43
45
InterfaceDefinition ,
44
- ArgumentDefinition ,
45
- ScalarDefinition ,
46
+ UnionDefinition ,
46
47
InputObjectDefinition ,
47
48
InputFieldDefinition ,
49
+ ScalarDefinition ,
48
50
} from './ast' ;
49
51
50
52
import {
@@ -84,24 +86,23 @@ function parseSchemaDocument(parser): SchemaDocument {
84
86
} ;
85
87
}
86
88
87
-
88
- function parseSchemaDefinition ( parser ) : any {
89
+ function parseSchemaDefinition ( parser ) : SchemaDefinition {
89
90
if ( ! peek ( parser , TokenKind . NAME ) ) {
90
91
throw unexpected ( parser ) ;
91
92
}
92
93
switch ( parser . token . value ) {
93
94
case 'type' :
94
95
return parseTypeDefinition ( parser ) ;
95
- case 'enum' :
96
- return parseEnumDefinition ( parser ) ;
97
96
case 'interface' :
98
97
return parseInterfaceDefinition ( parser ) ;
99
98
case 'union' :
100
99
return parseUnionDefinition ( parser ) ;
101
- case 'input' :
102
- return parseInputObjectDefinition ( parser ) ;
103
100
case 'scalar' :
104
101
return parseScalarDefinition ( parser ) ;
102
+ case 'enum' :
103
+ return parseEnumDefinition ( parser ) ;
104
+ case 'input' :
105
+ return parseInputObjectDefinition ( parser ) ;
105
106
default :
106
107
throw unexpected ( parser ) ;
107
108
}
@@ -126,6 +127,17 @@ function parseTypeDefinition(parser): TypeDefinition {
126
127
} ;
127
128
}
128
129
130
+ function parseInterfaces ( parser ) : Array < NamedType > {
131
+ var types = [ ] ;
132
+ if ( parser . token . value === 'implements' ) {
133
+ advance ( parser ) ;
134
+ do {
135
+ types . push ( parseNamedType ( parser ) ) ;
136
+ } while ( ! peek ( parser , TokenKind . BRACE_L ) ) ;
137
+ }
138
+ return types ;
139
+ }
140
+
129
141
function parseFieldDefinition ( parser ) : FieldDefinition {
130
142
var start = parser . token . start ;
131
143
var name = parseName ( parser ) ;
@@ -168,46 +180,6 @@ function parseArgumentDef(parser): ArgumentDefinition {
168
180
} ;
169
181
}
170
182
171
- function parseInterfaces ( parser ) : Array < NamedType > {
172
- var types = [ ] ;
173
- if ( parser . token . value === 'implements' ) {
174
- advance ( parser ) ;
175
- do {
176
- types . push ( parseType ( parser ) ) ;
177
- } while ( ! peek ( parser , TokenKind . BRACE_L ) ) ;
178
- }
179
- return types ;
180
- }
181
-
182
- function parseEnumDefinition ( parser ) : EnumDefinition {
183
- var start = parser . token . start ;
184
- expectKeyword ( parser , 'enum' ) ;
185
- var name = parseName ( parser ) ;
186
- var values = many (
187
- parser ,
188
- TokenKind . BRACE_L ,
189
- parseEnumValueDefinition ,
190
- TokenKind . BRACE_R ) ;
191
- var location = loc ( parser , start ) ;
192
- return {
193
- kind : ENUM_DEFINITION ,
194
- name : name ,
195
- values : values ,
196
- loc : location ,
197
- } ;
198
- }
199
-
200
- function parseEnumValueDefinition ( parser ) : EnumValueDefinition {
201
- var start = parser . token . start ;
202
- var name = parseName ( parser ) ;
203
- var location = loc ( parser , start ) ;
204
- return {
205
- kind : ENUM_VALUE_DEFINITION ,
206
- name : name ,
207
- loc : location ,
208
- } ;
209
- }
210
-
211
183
function parseInterfaceDefinition ( parser ) : InterfaceDefinition {
212
184
var start = parser . token . start ;
213
185
expectKeyword ( parser , 'interface' ) ;
@@ -225,7 +197,7 @@ function parseInterfaceDefinition(parser): InterfaceDefinition {
225
197
} ;
226
198
}
227
199
228
- function parseUnionDefinition ( parser ) {
200
+ function parseUnionDefinition ( parser ) : UnionDefinition {
229
201
var start = parser . token . start ;
230
202
expectKeyword ( parser , 'union' ) ;
231
203
var name = parseName ( parser ) ;
@@ -249,6 +221,46 @@ function parseUnionMembers(parser) {
249
221
return members ;
250
222
}
251
223
224
+ function parseScalarDefinition ( parser ) : ScalarDefinition {
225
+ var start = parser . token . start ;
226
+ expectKeyword ( parser , 'scalar' ) ;
227
+ var name = parseName ( parser ) ;
228
+ var location = loc ( parser , start ) ;
229
+ return {
230
+ kind : SCALAR_DEFINITION ,
231
+ name : name ,
232
+ loc : location ,
233
+ } ;
234
+ }
235
+
236
+ function parseEnumDefinition ( parser ) : EnumDefinition {
237
+ var start = parser . token . start ;
238
+ expectKeyword ( parser , 'enum' ) ;
239
+ var name = parseName ( parser ) ;
240
+ var values = many (
241
+ parser ,
242
+ TokenKind . BRACE_L ,
243
+ parseEnumValueDefinition ,
244
+ TokenKind . BRACE_R ) ;
245
+ var location = loc ( parser , start ) ;
246
+ return {
247
+ kind : ENUM_DEFINITION ,
248
+ name : name ,
249
+ values : values ,
250
+ loc : location ,
251
+ } ;
252
+ }
253
+
254
+ function parseEnumValueDefinition ( parser ) : EnumValueDefinition {
255
+ var start = parser . token . start ;
256
+ var name = parseName ( parser ) ;
257
+ var location = loc ( parser , start ) ;
258
+ return {
259
+ kind : ENUM_VALUE_DEFINITION ,
260
+ name : name ,
261
+ loc : location ,
262
+ } ;
263
+ }
252
264
253
265
function parseInputObjectDefinition ( parser ) : InputObjectDefinition {
254
266
var start = parser . token . start ;
@@ -280,15 +292,3 @@ function parseInputFieldDefinition(parser): InputFieldDefinition {
280
292
loc : location ,
281
293
} ;
282
294
}
283
-
284
- function parseScalarDefinition ( parser ) : ScalarDefinition {
285
- var start = parser . token . start ;
286
- expectKeyword ( parser , 'scalar' ) ;
287
- var name = parseName ( parser ) ;
288
- var location = loc ( parser , start ) ;
289
- return {
290
- kind : SCALAR_DEFINITION ,
291
- name : name ,
292
- loc : location ,
293
- } ;
294
- }
0 commit comments