1 | "use strict";
|
---|
2 |
|
---|
3 | var _utils = require("./utils");
|
---|
4 |
|
---|
5 | const defineInterfaceishType = (name, typeParameterType = "TypeParameterDeclaration") => {
|
---|
6 | (0, _utils.default)(name, {
|
---|
7 | builder: ["id", "typeParameters", "extends", "body"],
|
---|
8 | visitor: ["id", "typeParameters", "extends", "mixins", "implements", "body"],
|
---|
9 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
10 | fields: {
|
---|
11 | id: (0, _utils.validateType)("Identifier"),
|
---|
12 | typeParameters: (0, _utils.validateOptionalType)(typeParameterType),
|
---|
13 | extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")),
|
---|
14 | mixins: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")),
|
---|
15 | implements: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ClassImplements")),
|
---|
16 | body: (0, _utils.validateType)("ObjectTypeAnnotation")
|
---|
17 | }
|
---|
18 | });
|
---|
19 | };
|
---|
20 |
|
---|
21 | (0, _utils.default)("AnyTypeAnnotation", {
|
---|
22 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
23 | });
|
---|
24 | (0, _utils.default)("ArrayTypeAnnotation", {
|
---|
25 | visitor: ["elementType"],
|
---|
26 | aliases: ["Flow", "FlowType"],
|
---|
27 | fields: {
|
---|
28 | elementType: (0, _utils.validateType)("FlowType")
|
---|
29 | }
|
---|
30 | });
|
---|
31 | (0, _utils.default)("BooleanTypeAnnotation", {
|
---|
32 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
33 | });
|
---|
34 | (0, _utils.default)("BooleanLiteralTypeAnnotation", {
|
---|
35 | builder: ["value"],
|
---|
36 | aliases: ["Flow", "FlowType"],
|
---|
37 | fields: {
|
---|
38 | value: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
39 | }
|
---|
40 | });
|
---|
41 | (0, _utils.default)("NullLiteralTypeAnnotation", {
|
---|
42 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
43 | });
|
---|
44 | (0, _utils.default)("ClassImplements", {
|
---|
45 | visitor: ["id", "typeParameters"],
|
---|
46 | aliases: ["Flow"],
|
---|
47 | fields: {
|
---|
48 | id: (0, _utils.validateType)("Identifier"),
|
---|
49 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation")
|
---|
50 | }
|
---|
51 | });
|
---|
52 | defineInterfaceishType("DeclareClass");
|
---|
53 | (0, _utils.default)("DeclareFunction", {
|
---|
54 | visitor: ["id"],
|
---|
55 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
56 | fields: {
|
---|
57 | id: (0, _utils.validateType)("Identifier"),
|
---|
58 | predicate: (0, _utils.validateOptionalType)("DeclaredPredicate")
|
---|
59 | }
|
---|
60 | });
|
---|
61 | defineInterfaceishType("DeclareInterface");
|
---|
62 | (0, _utils.default)("DeclareModule", {
|
---|
63 | builder: ["id", "body", "kind"],
|
---|
64 | visitor: ["id", "body"],
|
---|
65 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
66 | fields: {
|
---|
67 | id: (0, _utils.validateType)(["Identifier", "StringLiteral"]),
|
---|
68 | body: (0, _utils.validateType)("BlockStatement"),
|
---|
69 | kind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("CommonJS", "ES"))
|
---|
70 | }
|
---|
71 | });
|
---|
72 | (0, _utils.default)("DeclareModuleExports", {
|
---|
73 | visitor: ["typeAnnotation"],
|
---|
74 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
75 | fields: {
|
---|
76 | typeAnnotation: (0, _utils.validateType)("TypeAnnotation")
|
---|
77 | }
|
---|
78 | });
|
---|
79 | (0, _utils.default)("DeclareTypeAlias", {
|
---|
80 | visitor: ["id", "typeParameters", "right"],
|
---|
81 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
82 | fields: {
|
---|
83 | id: (0, _utils.validateType)("Identifier"),
|
---|
84 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"),
|
---|
85 | right: (0, _utils.validateType)("FlowType")
|
---|
86 | }
|
---|
87 | });
|
---|
88 | (0, _utils.default)("DeclareOpaqueType", {
|
---|
89 | visitor: ["id", "typeParameters", "supertype"],
|
---|
90 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
91 | fields: {
|
---|
92 | id: (0, _utils.validateType)("Identifier"),
|
---|
93 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"),
|
---|
94 | supertype: (0, _utils.validateOptionalType)("FlowType"),
|
---|
95 | impltype: (0, _utils.validateOptionalType)("FlowType")
|
---|
96 | }
|
---|
97 | });
|
---|
98 | (0, _utils.default)("DeclareVariable", {
|
---|
99 | visitor: ["id"],
|
---|
100 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
101 | fields: {
|
---|
102 | id: (0, _utils.validateType)("Identifier")
|
---|
103 | }
|
---|
104 | });
|
---|
105 | (0, _utils.default)("DeclareExportDeclaration", {
|
---|
106 | visitor: ["declaration", "specifiers", "source"],
|
---|
107 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
108 | fields: {
|
---|
109 | declaration: (0, _utils.validateOptionalType)("Flow"),
|
---|
110 | specifiers: (0, _utils.validateOptional)((0, _utils.arrayOfType)(["ExportSpecifier", "ExportNamespaceSpecifier"])),
|
---|
111 | source: (0, _utils.validateOptionalType)("StringLiteral"),
|
---|
112 | default: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean"))
|
---|
113 | }
|
---|
114 | });
|
---|
115 | (0, _utils.default)("DeclareExportAllDeclaration", {
|
---|
116 | visitor: ["source"],
|
---|
117 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
118 | fields: {
|
---|
119 | source: (0, _utils.validateType)("StringLiteral"),
|
---|
120 | exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("type", "value"))
|
---|
121 | }
|
---|
122 | });
|
---|
123 | (0, _utils.default)("DeclaredPredicate", {
|
---|
124 | visitor: ["value"],
|
---|
125 | aliases: ["Flow", "FlowPredicate"],
|
---|
126 | fields: {
|
---|
127 | value: (0, _utils.validateType)("Flow")
|
---|
128 | }
|
---|
129 | });
|
---|
130 | (0, _utils.default)("ExistsTypeAnnotation", {
|
---|
131 | aliases: ["Flow", "FlowType"]
|
---|
132 | });
|
---|
133 | (0, _utils.default)("FunctionTypeAnnotation", {
|
---|
134 | visitor: ["typeParameters", "params", "rest", "returnType"],
|
---|
135 | aliases: ["Flow", "FlowType"],
|
---|
136 | fields: {
|
---|
137 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"),
|
---|
138 | params: (0, _utils.validate)((0, _utils.arrayOfType)("FunctionTypeParam")),
|
---|
139 | rest: (0, _utils.validateOptionalType)("FunctionTypeParam"),
|
---|
140 | this: (0, _utils.validateOptionalType)("FunctionTypeParam"),
|
---|
141 | returnType: (0, _utils.validateType)("FlowType")
|
---|
142 | }
|
---|
143 | });
|
---|
144 | (0, _utils.default)("FunctionTypeParam", {
|
---|
145 | visitor: ["name", "typeAnnotation"],
|
---|
146 | aliases: ["Flow"],
|
---|
147 | fields: {
|
---|
148 | name: (0, _utils.validateOptionalType)("Identifier"),
|
---|
149 | typeAnnotation: (0, _utils.validateType)("FlowType"),
|
---|
150 | optional: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean"))
|
---|
151 | }
|
---|
152 | });
|
---|
153 | (0, _utils.default)("GenericTypeAnnotation", {
|
---|
154 | visitor: ["id", "typeParameters"],
|
---|
155 | aliases: ["Flow", "FlowType"],
|
---|
156 | fields: {
|
---|
157 | id: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
|
---|
158 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation")
|
---|
159 | }
|
---|
160 | });
|
---|
161 | (0, _utils.default)("InferredPredicate", {
|
---|
162 | aliases: ["Flow", "FlowPredicate"]
|
---|
163 | });
|
---|
164 | (0, _utils.default)("InterfaceExtends", {
|
---|
165 | visitor: ["id", "typeParameters"],
|
---|
166 | aliases: ["Flow"],
|
---|
167 | fields: {
|
---|
168 | id: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
|
---|
169 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation")
|
---|
170 | }
|
---|
171 | });
|
---|
172 | defineInterfaceishType("InterfaceDeclaration");
|
---|
173 | (0, _utils.default)("InterfaceTypeAnnotation", {
|
---|
174 | visitor: ["extends", "body"],
|
---|
175 | aliases: ["Flow", "FlowType"],
|
---|
176 | fields: {
|
---|
177 | extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")),
|
---|
178 | body: (0, _utils.validateType)("ObjectTypeAnnotation")
|
---|
179 | }
|
---|
180 | });
|
---|
181 | (0, _utils.default)("IntersectionTypeAnnotation", {
|
---|
182 | visitor: ["types"],
|
---|
183 | aliases: ["Flow", "FlowType"],
|
---|
184 | fields: {
|
---|
185 | types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType"))
|
---|
186 | }
|
---|
187 | });
|
---|
188 | (0, _utils.default)("MixedTypeAnnotation", {
|
---|
189 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
190 | });
|
---|
191 | (0, _utils.default)("EmptyTypeAnnotation", {
|
---|
192 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
193 | });
|
---|
194 | (0, _utils.default)("NullableTypeAnnotation", {
|
---|
195 | visitor: ["typeAnnotation"],
|
---|
196 | aliases: ["Flow", "FlowType"],
|
---|
197 | fields: {
|
---|
198 | typeAnnotation: (0, _utils.validateType)("FlowType")
|
---|
199 | }
|
---|
200 | });
|
---|
201 | (0, _utils.default)("NumberLiteralTypeAnnotation", {
|
---|
202 | builder: ["value"],
|
---|
203 | aliases: ["Flow", "FlowType"],
|
---|
204 | fields: {
|
---|
205 | value: (0, _utils.validate)((0, _utils.assertValueType)("number"))
|
---|
206 | }
|
---|
207 | });
|
---|
208 | (0, _utils.default)("NumberTypeAnnotation", {
|
---|
209 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
210 | });
|
---|
211 | (0, _utils.default)("ObjectTypeAnnotation", {
|
---|
212 | visitor: ["properties", "indexers", "callProperties", "internalSlots"],
|
---|
213 | aliases: ["Flow", "FlowType"],
|
---|
214 | builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
|
---|
215 | fields: {
|
---|
216 | properties: (0, _utils.validate)((0, _utils.arrayOfType)(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])),
|
---|
217 | indexers: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeIndexer")),
|
---|
218 | callProperties: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeCallProperty")),
|
---|
219 | internalSlots: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeInternalSlot")),
|
---|
220 | exact: {
|
---|
221 | validate: (0, _utils.assertValueType)("boolean"),
|
---|
222 | default: false
|
---|
223 | },
|
---|
224 | inexact: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean"))
|
---|
225 | }
|
---|
226 | });
|
---|
227 | (0, _utils.default)("ObjectTypeInternalSlot", {
|
---|
228 | visitor: ["id", "value", "optional", "static", "method"],
|
---|
229 | aliases: ["Flow", "UserWhitespacable"],
|
---|
230 | fields: {
|
---|
231 | id: (0, _utils.validateType)("Identifier"),
|
---|
232 | value: (0, _utils.validateType)("FlowType"),
|
---|
233 | optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
234 | static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
235 | method: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
236 | }
|
---|
237 | });
|
---|
238 | (0, _utils.default)("ObjectTypeCallProperty", {
|
---|
239 | visitor: ["value"],
|
---|
240 | aliases: ["Flow", "UserWhitespacable"],
|
---|
241 | fields: {
|
---|
242 | value: (0, _utils.validateType)("FlowType"),
|
---|
243 | static: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
244 | }
|
---|
245 | });
|
---|
246 | (0, _utils.default)("ObjectTypeIndexer", {
|
---|
247 | visitor: ["id", "key", "value", "variance"],
|
---|
248 | aliases: ["Flow", "UserWhitespacable"],
|
---|
249 | fields: {
|
---|
250 | id: (0, _utils.validateOptionalType)("Identifier"),
|
---|
251 | key: (0, _utils.validateType)("FlowType"),
|
---|
252 | value: (0, _utils.validateType)("FlowType"),
|
---|
253 | static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
254 | variance: (0, _utils.validateOptionalType)("Variance")
|
---|
255 | }
|
---|
256 | });
|
---|
257 | (0, _utils.default)("ObjectTypeProperty", {
|
---|
258 | visitor: ["key", "value", "variance"],
|
---|
259 | aliases: ["Flow", "UserWhitespacable"],
|
---|
260 | fields: {
|
---|
261 | key: (0, _utils.validateType)(["Identifier", "StringLiteral"]),
|
---|
262 | value: (0, _utils.validateType)("FlowType"),
|
---|
263 | kind: (0, _utils.validate)((0, _utils.assertOneOf)("init", "get", "set")),
|
---|
264 | static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
265 | proto: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
266 | optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
267 | variance: (0, _utils.validateOptionalType)("Variance"),
|
---|
268 | method: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
269 | }
|
---|
270 | });
|
---|
271 | (0, _utils.default)("ObjectTypeSpreadProperty", {
|
---|
272 | visitor: ["argument"],
|
---|
273 | aliases: ["Flow", "UserWhitespacable"],
|
---|
274 | fields: {
|
---|
275 | argument: (0, _utils.validateType)("FlowType")
|
---|
276 | }
|
---|
277 | });
|
---|
278 | (0, _utils.default)("OpaqueType", {
|
---|
279 | visitor: ["id", "typeParameters", "supertype", "impltype"],
|
---|
280 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
281 | fields: {
|
---|
282 | id: (0, _utils.validateType)("Identifier"),
|
---|
283 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"),
|
---|
284 | supertype: (0, _utils.validateOptionalType)("FlowType"),
|
---|
285 | impltype: (0, _utils.validateType)("FlowType")
|
---|
286 | }
|
---|
287 | });
|
---|
288 | (0, _utils.default)("QualifiedTypeIdentifier", {
|
---|
289 | visitor: ["id", "qualification"],
|
---|
290 | aliases: ["Flow"],
|
---|
291 | fields: {
|
---|
292 | id: (0, _utils.validateType)("Identifier"),
|
---|
293 | qualification: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"])
|
---|
294 | }
|
---|
295 | });
|
---|
296 | (0, _utils.default)("StringLiteralTypeAnnotation", {
|
---|
297 | builder: ["value"],
|
---|
298 | aliases: ["Flow", "FlowType"],
|
---|
299 | fields: {
|
---|
300 | value: (0, _utils.validate)((0, _utils.assertValueType)("string"))
|
---|
301 | }
|
---|
302 | });
|
---|
303 | (0, _utils.default)("StringTypeAnnotation", {
|
---|
304 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
305 | });
|
---|
306 | (0, _utils.default)("SymbolTypeAnnotation", {
|
---|
307 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
308 | });
|
---|
309 | (0, _utils.default)("ThisTypeAnnotation", {
|
---|
310 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
311 | });
|
---|
312 | (0, _utils.default)("TupleTypeAnnotation", {
|
---|
313 | visitor: ["types"],
|
---|
314 | aliases: ["Flow", "FlowType"],
|
---|
315 | fields: {
|
---|
316 | types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType"))
|
---|
317 | }
|
---|
318 | });
|
---|
319 | (0, _utils.default)("TypeofTypeAnnotation", {
|
---|
320 | visitor: ["argument"],
|
---|
321 | aliases: ["Flow", "FlowType"],
|
---|
322 | fields: {
|
---|
323 | argument: (0, _utils.validateType)("FlowType")
|
---|
324 | }
|
---|
325 | });
|
---|
326 | (0, _utils.default)("TypeAlias", {
|
---|
327 | visitor: ["id", "typeParameters", "right"],
|
---|
328 | aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"],
|
---|
329 | fields: {
|
---|
330 | id: (0, _utils.validateType)("Identifier"),
|
---|
331 | typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"),
|
---|
332 | right: (0, _utils.validateType)("FlowType")
|
---|
333 | }
|
---|
334 | });
|
---|
335 | (0, _utils.default)("TypeAnnotation", {
|
---|
336 | aliases: ["Flow"],
|
---|
337 | visitor: ["typeAnnotation"],
|
---|
338 | fields: {
|
---|
339 | typeAnnotation: (0, _utils.validateType)("FlowType")
|
---|
340 | }
|
---|
341 | });
|
---|
342 | (0, _utils.default)("TypeCastExpression", {
|
---|
343 | visitor: ["expression", "typeAnnotation"],
|
---|
344 | aliases: ["Flow", "ExpressionWrapper", "Expression"],
|
---|
345 | fields: {
|
---|
346 | expression: (0, _utils.validateType)("Expression"),
|
---|
347 | typeAnnotation: (0, _utils.validateType)("TypeAnnotation")
|
---|
348 | }
|
---|
349 | });
|
---|
350 | (0, _utils.default)("TypeParameter", {
|
---|
351 | aliases: ["Flow"],
|
---|
352 | visitor: ["bound", "default", "variance"],
|
---|
353 | fields: {
|
---|
354 | name: (0, _utils.validate)((0, _utils.assertValueType)("string")),
|
---|
355 | bound: (0, _utils.validateOptionalType)("TypeAnnotation"),
|
---|
356 | default: (0, _utils.validateOptionalType)("FlowType"),
|
---|
357 | variance: (0, _utils.validateOptionalType)("Variance")
|
---|
358 | }
|
---|
359 | });
|
---|
360 | (0, _utils.default)("TypeParameterDeclaration", {
|
---|
361 | aliases: ["Flow"],
|
---|
362 | visitor: ["params"],
|
---|
363 | fields: {
|
---|
364 | params: (0, _utils.validate)((0, _utils.arrayOfType)("TypeParameter"))
|
---|
365 | }
|
---|
366 | });
|
---|
367 | (0, _utils.default)("TypeParameterInstantiation", {
|
---|
368 | aliases: ["Flow"],
|
---|
369 | visitor: ["params"],
|
---|
370 | fields: {
|
---|
371 | params: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType"))
|
---|
372 | }
|
---|
373 | });
|
---|
374 | (0, _utils.default)("UnionTypeAnnotation", {
|
---|
375 | visitor: ["types"],
|
---|
376 | aliases: ["Flow", "FlowType"],
|
---|
377 | fields: {
|
---|
378 | types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType"))
|
---|
379 | }
|
---|
380 | });
|
---|
381 | (0, _utils.default)("Variance", {
|
---|
382 | aliases: ["Flow"],
|
---|
383 | builder: ["kind"],
|
---|
384 | fields: {
|
---|
385 | kind: (0, _utils.validate)((0, _utils.assertOneOf)("minus", "plus"))
|
---|
386 | }
|
---|
387 | });
|
---|
388 | (0, _utils.default)("VoidTypeAnnotation", {
|
---|
389 | aliases: ["Flow", "FlowType", "FlowBaseAnnotation"]
|
---|
390 | });
|
---|
391 | (0, _utils.default)("EnumDeclaration", {
|
---|
392 | aliases: ["Statement", "Declaration"],
|
---|
393 | visitor: ["id", "body"],
|
---|
394 | fields: {
|
---|
395 | id: (0, _utils.validateType)("Identifier"),
|
---|
396 | body: (0, _utils.validateType)(["EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody"])
|
---|
397 | }
|
---|
398 | });
|
---|
399 | (0, _utils.default)("EnumBooleanBody", {
|
---|
400 | aliases: ["EnumBody"],
|
---|
401 | visitor: ["members"],
|
---|
402 | fields: {
|
---|
403 | explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
404 | members: (0, _utils.validateArrayOfType)("EnumBooleanMember"),
|
---|
405 | hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
406 | }
|
---|
407 | });
|
---|
408 | (0, _utils.default)("EnumNumberBody", {
|
---|
409 | aliases: ["EnumBody"],
|
---|
410 | visitor: ["members"],
|
---|
411 | fields: {
|
---|
412 | explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
413 | members: (0, _utils.validateArrayOfType)("EnumNumberMember"),
|
---|
414 | hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
415 | }
|
---|
416 | });
|
---|
417 | (0, _utils.default)("EnumStringBody", {
|
---|
418 | aliases: ["EnumBody"],
|
---|
419 | visitor: ["members"],
|
---|
420 | fields: {
|
---|
421 | explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")),
|
---|
422 | members: (0, _utils.validateArrayOfType)(["EnumStringMember", "EnumDefaultedMember"]),
|
---|
423 | hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
424 | }
|
---|
425 | });
|
---|
426 | (0, _utils.default)("EnumSymbolBody", {
|
---|
427 | aliases: ["EnumBody"],
|
---|
428 | visitor: ["members"],
|
---|
429 | fields: {
|
---|
430 | members: (0, _utils.validateArrayOfType)("EnumDefaultedMember"),
|
---|
431 | hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
432 | }
|
---|
433 | });
|
---|
434 | (0, _utils.default)("EnumBooleanMember", {
|
---|
435 | aliases: ["EnumMember"],
|
---|
436 | visitor: ["id"],
|
---|
437 | fields: {
|
---|
438 | id: (0, _utils.validateType)("Identifier"),
|
---|
439 | init: (0, _utils.validateType)("BooleanLiteral")
|
---|
440 | }
|
---|
441 | });
|
---|
442 | (0, _utils.default)("EnumNumberMember", {
|
---|
443 | aliases: ["EnumMember"],
|
---|
444 | visitor: ["id", "init"],
|
---|
445 | fields: {
|
---|
446 | id: (0, _utils.validateType)("Identifier"),
|
---|
447 | init: (0, _utils.validateType)("NumericLiteral")
|
---|
448 | }
|
---|
449 | });
|
---|
450 | (0, _utils.default)("EnumStringMember", {
|
---|
451 | aliases: ["EnumMember"],
|
---|
452 | visitor: ["id", "init"],
|
---|
453 | fields: {
|
---|
454 | id: (0, _utils.validateType)("Identifier"),
|
---|
455 | init: (0, _utils.validateType)("StringLiteral")
|
---|
456 | }
|
---|
457 | });
|
---|
458 | (0, _utils.default)("EnumDefaultedMember", {
|
---|
459 | aliases: ["EnumMember"],
|
---|
460 | visitor: ["id"],
|
---|
461 | fields: {
|
---|
462 | id: (0, _utils.validateType)("Identifier")
|
---|
463 | }
|
---|
464 | });
|
---|
465 | (0, _utils.default)("IndexedAccessType", {
|
---|
466 | visitor: ["objectType", "indexType"],
|
---|
467 | aliases: ["Flow", "FlowType"],
|
---|
468 | fields: {
|
---|
469 | objectType: (0, _utils.validateType)("FlowType"),
|
---|
470 | indexType: (0, _utils.validateType)("FlowType")
|
---|
471 | }
|
---|
472 | });
|
---|
473 | (0, _utils.default)("OptionalIndexedAccessType", {
|
---|
474 | visitor: ["objectType", "indexType"],
|
---|
475 | aliases: ["Flow", "FlowType"],
|
---|
476 | fields: {
|
---|
477 | objectType: (0, _utils.validateType)("FlowType"),
|
---|
478 | indexType: (0, _utils.validateType)("FlowType"),
|
---|
479 | optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean"))
|
---|
480 | }
|
---|
481 | }); |
---|