hermes-transform 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/detachedNode.js +1 -0
  2. package/dist/detachedNode.js.flow +1 -0
  3. package/dist/generated/node-types.js +1 -12
  4. package/dist/generated/node-types.js.flow +2 -19
  5. package/dist/generated/special-case-node-types/misc.js +11 -0
  6. package/dist/generated/special-case-node-types/misc.js.flow +18 -0
  7. package/dist/src/detachedNode.js +178 -0
  8. package/dist/src/generated/node-types.js +2212 -0
  9. package/dist/src/generated/special-case-node-types/Comment.js +36 -0
  10. package/dist/src/generated/special-case-node-types/DeclareExportDeclaration.js +58 -0
  11. package/dist/src/generated/special-case-node-types/DeclareHook.js +33 -0
  12. package/dist/src/generated/special-case-node-types/ExportNamedDeclaration.js +44 -0
  13. package/dist/src/generated/special-case-node-types/Literal.js +97 -0
  14. package/dist/src/generated/special-case-node-types/ObjectTypeProperty.js +74 -0
  15. package/dist/src/generated/special-case-node-types/Property.js +136 -0
  16. package/dist/src/generated/special-case-node-types/misc.js +158 -0
  17. package/dist/src/generated/special-case-node-types.js +69 -0
  18. package/dist/src/index.js +53 -0
  19. package/dist/src/transform/Errors.js +43 -0
  20. package/dist/src/transform/MutationContext.js +81 -0
  21. package/dist/src/transform/TransformContext.js +213 -0
  22. package/dist/src/transform/comments/comments.js +308 -0
  23. package/dist/src/transform/comments/prettier/common/util.js +364 -0
  24. package/dist/src/transform/comments/prettier/language-js/comments.js +788 -0
  25. package/dist/src/transform/comments/prettier/language-js/loc.js +42 -0
  26. package/dist/src/transform/comments/prettier/language-js/printer-estree.js +32 -0
  27. package/dist/src/transform/comments/prettier/language-js/utils.js +119 -0
  28. package/dist/src/transform/comments/prettier/main/comments.js +440 -0
  29. package/dist/src/transform/comments/prettier/utils/get-last.js +13 -0
  30. package/dist/src/transform/mutations/AddComments.js +43 -0
  31. package/dist/src/transform/mutations/CloneCommentsTo.js +31 -0
  32. package/dist/src/transform/mutations/InsertStatement.js +91 -0
  33. package/dist/src/transform/mutations/ModifyNodeInPlace.js +59 -0
  34. package/dist/src/transform/mutations/RemoveComment.js +78 -0
  35. package/dist/src/transform/mutations/RemoveNode.js +205 -0
  36. package/dist/src/transform/mutations/RemoveStatement.js +59 -0
  37. package/dist/src/transform/mutations/ReplaceNode.js +92 -0
  38. package/dist/src/transform/mutations/ReplaceStatementWithMany.js +79 -0
  39. package/dist/src/transform/mutations/utils/getStatementParent.js +143 -0
  40. package/dist/src/transform/mutations/utils/isValidModuleDeclarationParent.js +43 -0
  41. package/dist/src/transform/parse.js +56 -0
  42. package/dist/src/transform/print.js +134 -0
  43. package/dist/src/transform/transform.js +36 -0
  44. package/dist/src/transform/transformAST.js +134 -0
  45. package/dist/src/traverse/NodeEventGenerator.js +353 -0
  46. package/dist/src/traverse/SafeEmitter.js +52 -0
  47. package/dist/src/traverse/esquery.js +37 -0
  48. package/dist/src/traverse/traverse.js +150 -0
  49. package/dist/transform/comments/prettier/language-js/comments.js +29 -1
  50. package/dist/transform/mutations/utils/getStatementParent.js.flow +7 -5
  51. package/package.json +5 -5
@@ -0,0 +1,2212 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ * @format
9
+ * @generated
10
+ */
11
+
12
+ /*
13
+ * !!! GENERATED FILE !!!
14
+ *
15
+ * Any manual changes to this file will be overwritten. To regenerate run `yarn build`.
16
+ */
17
+ // lint directives to let us do some basic validation of generated files
18
+
19
+ /* eslint no-undef: 'error', no-unused-vars: ['error', {vars: "local"}], no-redeclare: 'error' */
20
+
21
+ /* global $NonMaybeType, Partial, $ReadOnly, $ReadOnlyArray, $FlowFixMe */
22
+ 'use strict';
23
+
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ var _exportNames = {
28
+ AnyTypeAnnotation: true,
29
+ ArrayExpression: true,
30
+ ArrayPattern: true,
31
+ ArrayTypeAnnotation: true,
32
+ AsConstExpression: true,
33
+ AsExpression: true,
34
+ AssignmentExpression: true,
35
+ AssignmentPattern: true,
36
+ AwaitExpression: true,
37
+ BigIntLiteralTypeAnnotation: true,
38
+ BigIntTypeAnnotation: true,
39
+ BinaryExpression: true,
40
+ BooleanLiteralTypeAnnotation: true,
41
+ BooleanTypeAnnotation: true,
42
+ BreakStatement: true,
43
+ CallExpression: true,
44
+ CatchClause: true,
45
+ ChainExpression: true,
46
+ ClassBody: true,
47
+ ClassExpression: true,
48
+ ClassImplements: true,
49
+ ComponentDeclaration: true,
50
+ ComponentParameter: true,
51
+ ComponentTypeAnnotation: true,
52
+ ComponentTypeParameter: true,
53
+ ConditionalExpression: true,
54
+ ConditionalTypeAnnotation: true,
55
+ ContinueStatement: true,
56
+ DebuggerStatement: true,
57
+ DeclareClass: true,
58
+ DeclareComponent: true,
59
+ DeclaredPredicate: true,
60
+ DeclareEnum: true,
61
+ DeclareExportAllDeclaration: true,
62
+ DeclareInterface: true,
63
+ DeclareModule: true,
64
+ DeclareModuleExports: true,
65
+ DeclareNamespace: true,
66
+ DeclareOpaqueType: true,
67
+ DeclareTypeAlias: true,
68
+ DeclareVariable: true,
69
+ DoWhileStatement: true,
70
+ EmptyStatement: true,
71
+ EmptyTypeAnnotation: true,
72
+ EnumBigIntBody: true,
73
+ EnumBigIntMember: true,
74
+ EnumBooleanBody: true,
75
+ EnumBooleanMember: true,
76
+ EnumDeclaration: true,
77
+ EnumDefaultedMember: true,
78
+ EnumNumberBody: true,
79
+ EnumNumberMember: true,
80
+ EnumStringBody: true,
81
+ EnumStringMember: true,
82
+ EnumSymbolBody: true,
83
+ ExistsTypeAnnotation: true,
84
+ ExportAllDeclaration: true,
85
+ ExportDefaultDeclaration: true,
86
+ ExportSpecifier: true,
87
+ ExpressionStatement: true,
88
+ ForInStatement: true,
89
+ ForOfStatement: true,
90
+ ForStatement: true,
91
+ FunctionDeclaration: true,
92
+ FunctionExpression: true,
93
+ FunctionTypeAnnotation: true,
94
+ FunctionTypeParam: true,
95
+ GenericTypeAnnotation: true,
96
+ HookDeclaration: true,
97
+ HookTypeAnnotation: true,
98
+ IfStatement: true,
99
+ ImportAttribute: true,
100
+ ImportDeclaration: true,
101
+ ImportDefaultSpecifier: true,
102
+ ImportExpression: true,
103
+ ImportNamespaceSpecifier: true,
104
+ ImportSpecifier: true,
105
+ IndexedAccessType: true,
106
+ InferredPredicate: true,
107
+ InferTypeAnnotation: true,
108
+ InterfaceDeclaration: true,
109
+ InterfaceExtends: true,
110
+ InterfaceTypeAnnotation: true,
111
+ IntersectionTypeAnnotation: true,
112
+ JSXAttribute: true,
113
+ JSXClosingElement: true,
114
+ JSXClosingFragment: true,
115
+ JSXElement: true,
116
+ JSXEmptyExpression: true,
117
+ JSXExpressionContainer: true,
118
+ JSXFragment: true,
119
+ JSXIdentifier: true,
120
+ JSXMemberExpression: true,
121
+ JSXNamespacedName: true,
122
+ JSXOpeningElement: true,
123
+ JSXOpeningFragment: true,
124
+ JSXSpreadAttribute: true,
125
+ JSXSpreadChild: true,
126
+ JSXText: true,
127
+ KeyofTypeAnnotation: true,
128
+ LabeledStatement: true,
129
+ LogicalExpression: true,
130
+ MatchArrayPattern: true,
131
+ MatchAsPattern: true,
132
+ MatchBindingPattern: true,
133
+ MatchExpression: true,
134
+ MatchExpressionCase: true,
135
+ MatchIdentifierPattern: true,
136
+ MatchLiteralPattern: true,
137
+ MatchMemberPattern: true,
138
+ MatchObjectPattern: true,
139
+ MatchObjectPatternProperty: true,
140
+ MatchOrPattern: true,
141
+ MatchRestPattern: true,
142
+ MatchStatement: true,
143
+ MatchStatementCase: true,
144
+ MatchUnaryPattern: true,
145
+ MatchWildcardPattern: true,
146
+ MetaProperty: true,
147
+ MethodDefinition: true,
148
+ MixedTypeAnnotation: true,
149
+ NewExpression: true,
150
+ NullableTypeAnnotation: true,
151
+ NullLiteralTypeAnnotation: true,
152
+ NumberLiteralTypeAnnotation: true,
153
+ NumberTypeAnnotation: true,
154
+ ObjectExpression: true,
155
+ ObjectPattern: true,
156
+ ObjectTypeAnnotation: true,
157
+ ObjectTypeCallProperty: true,
158
+ ObjectTypeIndexer: true,
159
+ ObjectTypeInternalSlot: true,
160
+ ObjectTypeMappedTypeProperty: true,
161
+ ObjectTypeSpreadProperty: true,
162
+ OpaqueType: true,
163
+ OptionalIndexedAccessType: true,
164
+ PrivateIdentifier: true,
165
+ Property: true,
166
+ PropertyDefinition: true,
167
+ QualifiedTypeIdentifier: true,
168
+ QualifiedTypeofIdentifier: true,
169
+ RestElement: true,
170
+ ReturnStatement: true,
171
+ SequenceExpression: true,
172
+ SpreadElement: true,
173
+ StaticBlock: true,
174
+ StringLiteralTypeAnnotation: true,
175
+ StringTypeAnnotation: true,
176
+ Super: true,
177
+ SwitchCase: true,
178
+ SwitchStatement: true,
179
+ SymbolTypeAnnotation: true,
180
+ TaggedTemplateExpression: true,
181
+ TemplateLiteral: true,
182
+ ThisExpression: true,
183
+ ThisTypeAnnotation: true,
184
+ ThrowStatement: true,
185
+ TryStatement: true,
186
+ TupleTypeAnnotation: true,
187
+ TupleTypeLabeledElement: true,
188
+ TupleTypeSpreadElement: true,
189
+ TypeAlias: true,
190
+ TypeAnnotation: true,
191
+ TypeCastExpression: true,
192
+ TypeofTypeAnnotation: true,
193
+ TypeOperator: true,
194
+ TypeParameter: true,
195
+ TypeParameterDeclaration: true,
196
+ TypeParameterInstantiation: true,
197
+ TypePredicate: true,
198
+ UnaryExpression: true,
199
+ UnionTypeAnnotation: true,
200
+ UpdateExpression: true,
201
+ VariableDeclaration: true,
202
+ VariableDeclarator: true,
203
+ Variance: true,
204
+ VoidTypeAnnotation: true,
205
+ WhileStatement: true,
206
+ WithStatement: true,
207
+ YieldExpression: true
208
+ };
209
+ exports.AnyTypeAnnotation = AnyTypeAnnotation;
210
+ exports.ArrayExpression = ArrayExpression;
211
+ exports.ArrayPattern = ArrayPattern;
212
+ exports.ArrayTypeAnnotation = ArrayTypeAnnotation;
213
+ exports.AsConstExpression = AsConstExpression;
214
+ exports.AsExpression = AsExpression;
215
+ exports.AssignmentExpression = AssignmentExpression;
216
+ exports.AssignmentPattern = AssignmentPattern;
217
+ exports.AwaitExpression = AwaitExpression;
218
+ exports.BigIntLiteralTypeAnnotation = BigIntLiteralTypeAnnotation;
219
+ exports.BigIntTypeAnnotation = BigIntTypeAnnotation;
220
+ exports.BinaryExpression = BinaryExpression;
221
+ exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation;
222
+ exports.BooleanTypeAnnotation = BooleanTypeAnnotation;
223
+ exports.BreakStatement = BreakStatement;
224
+ exports.CallExpression = CallExpression;
225
+ exports.CatchClause = CatchClause;
226
+ exports.ChainExpression = ChainExpression;
227
+ exports.ClassBody = ClassBody;
228
+ exports.ClassExpression = ClassExpression;
229
+ exports.ClassImplements = ClassImplements;
230
+ exports.ComponentDeclaration = ComponentDeclaration;
231
+ exports.ComponentParameter = ComponentParameter;
232
+ exports.ComponentTypeAnnotation = ComponentTypeAnnotation;
233
+ exports.ComponentTypeParameter = ComponentTypeParameter;
234
+ exports.ConditionalExpression = ConditionalExpression;
235
+ exports.ConditionalTypeAnnotation = ConditionalTypeAnnotation;
236
+ exports.ContinueStatement = ContinueStatement;
237
+ exports.DebuggerStatement = DebuggerStatement;
238
+ exports.DeclareClass = DeclareClass;
239
+ exports.DeclareComponent = DeclareComponent;
240
+ exports.DeclareEnum = DeclareEnum;
241
+ exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration;
242
+ exports.DeclareInterface = DeclareInterface;
243
+ exports.DeclareModule = DeclareModule;
244
+ exports.DeclareModuleExports = DeclareModuleExports;
245
+ exports.DeclareNamespace = DeclareNamespace;
246
+ exports.DeclareOpaqueType = DeclareOpaqueType;
247
+ exports.DeclareTypeAlias = DeclareTypeAlias;
248
+ exports.DeclareVariable = DeclareVariable;
249
+ exports.DeclaredPredicate = DeclaredPredicate;
250
+ exports.DoWhileStatement = DoWhileStatement;
251
+ exports.EmptyStatement = EmptyStatement;
252
+ exports.EmptyTypeAnnotation = EmptyTypeAnnotation;
253
+ exports.EnumBigIntBody = EnumBigIntBody;
254
+ exports.EnumBigIntMember = EnumBigIntMember;
255
+ exports.EnumBooleanBody = EnumBooleanBody;
256
+ exports.EnumBooleanMember = EnumBooleanMember;
257
+ exports.EnumDeclaration = EnumDeclaration;
258
+ exports.EnumDefaultedMember = EnumDefaultedMember;
259
+ exports.EnumNumberBody = EnumNumberBody;
260
+ exports.EnumNumberMember = EnumNumberMember;
261
+ exports.EnumStringBody = EnumStringBody;
262
+ exports.EnumStringMember = EnumStringMember;
263
+ exports.EnumSymbolBody = EnumSymbolBody;
264
+ exports.ExistsTypeAnnotation = ExistsTypeAnnotation;
265
+ exports.ExportAllDeclaration = ExportAllDeclaration;
266
+ exports.ExportDefaultDeclaration = ExportDefaultDeclaration;
267
+ exports.ExportSpecifier = ExportSpecifier;
268
+ exports.ExpressionStatement = ExpressionStatement;
269
+ exports.ForInStatement = ForInStatement;
270
+ exports.ForOfStatement = ForOfStatement;
271
+ exports.ForStatement = ForStatement;
272
+ exports.FunctionDeclaration = FunctionDeclaration;
273
+ exports.FunctionExpression = FunctionExpression;
274
+ exports.FunctionTypeAnnotation = FunctionTypeAnnotation;
275
+ exports.FunctionTypeParam = FunctionTypeParam;
276
+ exports.GenericTypeAnnotation = GenericTypeAnnotation;
277
+ exports.HookDeclaration = HookDeclaration;
278
+ exports.HookTypeAnnotation = HookTypeAnnotation;
279
+ exports.IfStatement = IfStatement;
280
+ exports.ImportAttribute = ImportAttribute;
281
+ exports.ImportDeclaration = ImportDeclaration;
282
+ exports.ImportDefaultSpecifier = ImportDefaultSpecifier;
283
+ exports.ImportExpression = ImportExpression;
284
+ exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;
285
+ exports.ImportSpecifier = ImportSpecifier;
286
+ exports.IndexedAccessType = IndexedAccessType;
287
+ exports.InferTypeAnnotation = InferTypeAnnotation;
288
+ exports.InferredPredicate = InferredPredicate;
289
+ exports.InterfaceDeclaration = InterfaceDeclaration;
290
+ exports.InterfaceExtends = InterfaceExtends;
291
+ exports.InterfaceTypeAnnotation = InterfaceTypeAnnotation;
292
+ exports.IntersectionTypeAnnotation = IntersectionTypeAnnotation;
293
+ exports.JSXAttribute = JSXAttribute;
294
+ exports.JSXClosingElement = JSXClosingElement;
295
+ exports.JSXClosingFragment = JSXClosingFragment;
296
+ exports.JSXElement = JSXElement;
297
+ exports.JSXEmptyExpression = JSXEmptyExpression;
298
+ exports.JSXExpressionContainer = JSXExpressionContainer;
299
+ exports.JSXFragment = JSXFragment;
300
+ exports.JSXIdentifier = JSXIdentifier;
301
+ exports.JSXMemberExpression = JSXMemberExpression;
302
+ exports.JSXNamespacedName = JSXNamespacedName;
303
+ exports.JSXOpeningElement = JSXOpeningElement;
304
+ exports.JSXOpeningFragment = JSXOpeningFragment;
305
+ exports.JSXSpreadAttribute = JSXSpreadAttribute;
306
+ exports.JSXSpreadChild = JSXSpreadChild;
307
+ exports.JSXText = JSXText;
308
+ exports.KeyofTypeAnnotation = KeyofTypeAnnotation;
309
+ exports.LabeledStatement = LabeledStatement;
310
+ exports.LogicalExpression = LogicalExpression;
311
+ exports.MatchArrayPattern = MatchArrayPattern;
312
+ exports.MatchAsPattern = MatchAsPattern;
313
+ exports.MatchBindingPattern = MatchBindingPattern;
314
+ exports.MatchExpression = MatchExpression;
315
+ exports.MatchExpressionCase = MatchExpressionCase;
316
+ exports.MatchIdentifierPattern = MatchIdentifierPattern;
317
+ exports.MatchLiteralPattern = MatchLiteralPattern;
318
+ exports.MatchMemberPattern = MatchMemberPattern;
319
+ exports.MatchObjectPattern = MatchObjectPattern;
320
+ exports.MatchObjectPatternProperty = MatchObjectPatternProperty;
321
+ exports.MatchOrPattern = MatchOrPattern;
322
+ exports.MatchRestPattern = MatchRestPattern;
323
+ exports.MatchStatement = MatchStatement;
324
+ exports.MatchStatementCase = MatchStatementCase;
325
+ exports.MatchUnaryPattern = MatchUnaryPattern;
326
+ exports.MatchWildcardPattern = MatchWildcardPattern;
327
+ exports.MetaProperty = MetaProperty;
328
+ exports.MethodDefinition = MethodDefinition;
329
+ exports.MixedTypeAnnotation = MixedTypeAnnotation;
330
+ exports.NewExpression = NewExpression;
331
+ exports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation;
332
+ exports.NullableTypeAnnotation = NullableTypeAnnotation;
333
+ exports.NumberLiteralTypeAnnotation = NumberLiteralTypeAnnotation;
334
+ exports.NumberTypeAnnotation = NumberTypeAnnotation;
335
+ exports.ObjectExpression = ObjectExpression;
336
+ exports.ObjectPattern = ObjectPattern;
337
+ exports.ObjectTypeAnnotation = ObjectTypeAnnotation;
338
+ exports.ObjectTypeCallProperty = ObjectTypeCallProperty;
339
+ exports.ObjectTypeIndexer = ObjectTypeIndexer;
340
+ exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot;
341
+ exports.ObjectTypeMappedTypeProperty = ObjectTypeMappedTypeProperty;
342
+ exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty;
343
+ exports.OpaqueType = OpaqueType;
344
+ exports.OptionalIndexedAccessType = OptionalIndexedAccessType;
345
+ exports.PrivateIdentifier = PrivateIdentifier;
346
+ exports.Property = Property;
347
+ exports.PropertyDefinition = PropertyDefinition;
348
+ exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier;
349
+ exports.QualifiedTypeofIdentifier = QualifiedTypeofIdentifier;
350
+ exports.RestElement = RestElement;
351
+ exports.ReturnStatement = ReturnStatement;
352
+ exports.SequenceExpression = SequenceExpression;
353
+ exports.SpreadElement = SpreadElement;
354
+ exports.StaticBlock = StaticBlock;
355
+ exports.StringLiteralTypeAnnotation = StringLiteralTypeAnnotation;
356
+ exports.StringTypeAnnotation = StringTypeAnnotation;
357
+ exports.Super = Super;
358
+ exports.SwitchCase = SwitchCase;
359
+ exports.SwitchStatement = SwitchStatement;
360
+ exports.SymbolTypeAnnotation = SymbolTypeAnnotation;
361
+ exports.TaggedTemplateExpression = TaggedTemplateExpression;
362
+ exports.TemplateLiteral = TemplateLiteral;
363
+ exports.ThisExpression = ThisExpression;
364
+ exports.ThisTypeAnnotation = ThisTypeAnnotation;
365
+ exports.ThrowStatement = ThrowStatement;
366
+ exports.TryStatement = TryStatement;
367
+ exports.TupleTypeAnnotation = TupleTypeAnnotation;
368
+ exports.TupleTypeLabeledElement = TupleTypeLabeledElement;
369
+ exports.TupleTypeSpreadElement = TupleTypeSpreadElement;
370
+ exports.TypeAlias = TypeAlias;
371
+ exports.TypeAnnotation = TypeAnnotation;
372
+ exports.TypeCastExpression = TypeCastExpression;
373
+ exports.TypeOperator = TypeOperator;
374
+ exports.TypeParameter = TypeParameter;
375
+ exports.TypeParameterDeclaration = TypeParameterDeclaration;
376
+ exports.TypeParameterInstantiation = TypeParameterInstantiation;
377
+ exports.TypePredicate = TypePredicate;
378
+ exports.TypeofTypeAnnotation = TypeofTypeAnnotation;
379
+ exports.UnaryExpression = UnaryExpression;
380
+ exports.UnionTypeAnnotation = UnionTypeAnnotation;
381
+ exports.UpdateExpression = UpdateExpression;
382
+ exports.VariableDeclaration = VariableDeclaration;
383
+ exports.VariableDeclarator = VariableDeclarator;
384
+ exports.Variance = Variance;
385
+ exports.VoidTypeAnnotation = VoidTypeAnnotation;
386
+ exports.WhileStatement = WhileStatement;
387
+ exports.WithStatement = WithStatement;
388
+ exports.YieldExpression = YieldExpression;
389
+
390
+ var _detachedNode = require("../detachedNode");
391
+
392
+ var _specialCaseNodeTypes = require("./special-case-node-types");
393
+
394
+ Object.keys(_specialCaseNodeTypes).forEach(function (key) {
395
+ if (key === "default" || key === "__esModule") return;
396
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
397
+ if (key in exports && exports[key] === _specialCaseNodeTypes[key]) return;
398
+ exports[key] = _specialCaseNodeTypes[key];
399
+ });
400
+
401
+ function AnyTypeAnnotation(props = { ...null
402
+ }) {
403
+ return (0, _detachedNode.detachedProps)(props.parent, {
404
+ type: 'AnyTypeAnnotation'
405
+ });
406
+ }
407
+
408
+ function ArrayExpression(props) {
409
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
410
+ type: 'ArrayExpression',
411
+ elements: props.elements.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
412
+ trailingComma: props.trailingComma
413
+ });
414
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
415
+ return node;
416
+ }
417
+
418
+ function ArrayPattern(props) {
419
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
420
+ type: 'ArrayPattern',
421
+ elements: props.elements.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
422
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
423
+ });
424
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
425
+ return node;
426
+ }
427
+
428
+ function ArrayTypeAnnotation(props) {
429
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
430
+ type: 'ArrayTypeAnnotation',
431
+ elementType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.elementType)
432
+ });
433
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
434
+ return node;
435
+ }
436
+
437
+ function AsConstExpression(props) {
438
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
439
+ type: 'AsConstExpression',
440
+ expression: (0, _detachedNode.asDetachedNodeForCodeGen)(props.expression)
441
+ });
442
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
443
+ return node;
444
+ }
445
+
446
+ function AsExpression(props) {
447
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
448
+ type: 'AsExpression',
449
+ expression: (0, _detachedNode.asDetachedNodeForCodeGen)(props.expression),
450
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
451
+ });
452
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
453
+ return node;
454
+ }
455
+
456
+ function AssignmentExpression(props) {
457
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
458
+ type: 'AssignmentExpression',
459
+ operator: props.operator,
460
+ left: (0, _detachedNode.asDetachedNodeForCodeGen)(props.left),
461
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right)
462
+ });
463
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
464
+ return node;
465
+ }
466
+
467
+ function AssignmentPattern(props) {
468
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
469
+ type: 'AssignmentPattern',
470
+ left: (0, _detachedNode.asDetachedNodeForCodeGen)(props.left),
471
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right)
472
+ });
473
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
474
+ return node;
475
+ }
476
+
477
+ function AwaitExpression(props) {
478
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
479
+ type: 'AwaitExpression',
480
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
481
+ });
482
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
483
+ return node;
484
+ }
485
+
486
+ function BigIntLiteralTypeAnnotation(props) {
487
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
488
+ type: 'BigIntLiteralTypeAnnotation',
489
+ raw: props.raw
490
+ });
491
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
492
+ return node;
493
+ }
494
+
495
+ function BigIntTypeAnnotation(props = { ...null
496
+ }) {
497
+ return (0, _detachedNode.detachedProps)(props.parent, {
498
+ type: 'BigIntTypeAnnotation'
499
+ });
500
+ }
501
+
502
+ function BinaryExpression(props) {
503
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
504
+ type: 'BinaryExpression',
505
+ left: (0, _detachedNode.asDetachedNodeForCodeGen)(props.left),
506
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right),
507
+ operator: props.operator
508
+ });
509
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
510
+ return node;
511
+ }
512
+
513
+ function BooleanLiteralTypeAnnotation(props) {
514
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
515
+ type: 'BooleanLiteralTypeAnnotation',
516
+ value: props.value,
517
+ raw: props.raw
518
+ });
519
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
520
+ return node;
521
+ }
522
+
523
+ function BooleanTypeAnnotation(props = { ...null
524
+ }) {
525
+ return (0, _detachedNode.detachedProps)(props.parent, {
526
+ type: 'BooleanTypeAnnotation'
527
+ });
528
+ }
529
+
530
+ function BreakStatement(props) {
531
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
532
+ type: 'BreakStatement',
533
+ label: (0, _detachedNode.asDetachedNodeForCodeGen)(props.label)
534
+ });
535
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
536
+ return node;
537
+ }
538
+
539
+ function CallExpression(props) {
540
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
541
+ type: 'CallExpression',
542
+ callee: (0, _detachedNode.asDetachedNodeForCodeGen)(props.callee),
543
+ typeArguments: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeArguments),
544
+ arguments: props.arguments.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
545
+ });
546
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
547
+ return node;
548
+ }
549
+
550
+ function CatchClause(props) {
551
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
552
+ type: 'CatchClause',
553
+ param: (0, _detachedNode.asDetachedNodeForCodeGen)(props.param),
554
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
555
+ });
556
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
557
+ return node;
558
+ }
559
+
560
+ function ChainExpression(props) {
561
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
562
+ type: 'ChainExpression',
563
+ expression: (0, _detachedNode.asDetachedNodeForCodeGen)(props.expression)
564
+ });
565
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
566
+ return node;
567
+ }
568
+
569
+ function ClassBody(props) {
570
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
571
+ type: 'ClassBody',
572
+ body: props.body.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
573
+ });
574
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
575
+ return node;
576
+ }
577
+
578
+ function ClassExpression(props) {
579
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
580
+ type: 'ClassExpression',
581
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
582
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
583
+ superClass: (0, _detachedNode.asDetachedNodeForCodeGen)(props.superClass),
584
+ superTypeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.superTypeParameters),
585
+ implements: props.implements.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
586
+ decorators: props.decorators.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
587
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
588
+ });
589
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
590
+ return node;
591
+ }
592
+
593
+ function ClassImplements(props) {
594
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
595
+ type: 'ClassImplements',
596
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
597
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters)
598
+ });
599
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
600
+ return node;
601
+ }
602
+
603
+ function ComponentDeclaration(props) {
604
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
605
+ type: 'ComponentDeclaration',
606
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
607
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
608
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
609
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
610
+ rendersType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rendersType)
611
+ });
612
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
613
+ return node;
614
+ }
615
+
616
+ function ComponentParameter(props) {
617
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
618
+ type: 'ComponentParameter',
619
+ name: (0, _detachedNode.asDetachedNodeForCodeGen)(props.name),
620
+ local: (0, _detachedNode.asDetachedNodeForCodeGen)(props.local),
621
+ shorthand: props.shorthand
622
+ });
623
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
624
+ return node;
625
+ }
626
+
627
+ function ComponentTypeAnnotation(props) {
628
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
629
+ type: 'ComponentTypeAnnotation',
630
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
631
+ rest: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rest),
632
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
633
+ rendersType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rendersType)
634
+ });
635
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
636
+ return node;
637
+ }
638
+
639
+ function ComponentTypeParameter(props) {
640
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
641
+ type: 'ComponentTypeParameter',
642
+ name: (0, _detachedNode.asDetachedNodeForCodeGen)(props.name),
643
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation),
644
+ optional: props.optional
645
+ });
646
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
647
+ return node;
648
+ }
649
+
650
+ function ConditionalExpression(props) {
651
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
652
+ type: 'ConditionalExpression',
653
+ test: (0, _detachedNode.asDetachedNodeForCodeGen)(props.test),
654
+ alternate: (0, _detachedNode.asDetachedNodeForCodeGen)(props.alternate),
655
+ consequent: (0, _detachedNode.asDetachedNodeForCodeGen)(props.consequent)
656
+ });
657
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
658
+ return node;
659
+ }
660
+
661
+ function ConditionalTypeAnnotation(props) {
662
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
663
+ type: 'ConditionalTypeAnnotation',
664
+ checkType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.checkType),
665
+ extendsType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.extendsType),
666
+ trueType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.trueType),
667
+ falseType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.falseType)
668
+ });
669
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
670
+ return node;
671
+ }
672
+
673
+ function ContinueStatement(props) {
674
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
675
+ type: 'ContinueStatement',
676
+ label: (0, _detachedNode.asDetachedNodeForCodeGen)(props.label)
677
+ });
678
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
679
+ return node;
680
+ }
681
+
682
+ function DebuggerStatement(props = { ...null
683
+ }) {
684
+ return (0, _detachedNode.detachedProps)(props.parent, {
685
+ type: 'DebuggerStatement'
686
+ });
687
+ }
688
+
689
+ function DeclareClass(props) {
690
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
691
+ type: 'DeclareClass',
692
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
693
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
694
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
695
+ implements: props.implements.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
696
+ mixins: props.mixins.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
697
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
698
+ });
699
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
700
+ return node;
701
+ }
702
+
703
+ function DeclareComponent(props) {
704
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
705
+ type: 'DeclareComponent',
706
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
707
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
708
+ rest: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rest),
709
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
710
+ rendersType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rendersType)
711
+ });
712
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
713
+ return node;
714
+ }
715
+
716
+ function DeclaredPredicate(props) {
717
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
718
+ type: 'DeclaredPredicate',
719
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value)
720
+ });
721
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
722
+ return node;
723
+ }
724
+
725
+ function DeclareEnum(props) {
726
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
727
+ type: 'DeclareEnum',
728
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
729
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
730
+ });
731
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
732
+ return node;
733
+ }
734
+
735
+ function DeclareExportAllDeclaration(props) {
736
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
737
+ type: 'DeclareExportAllDeclaration',
738
+ source: (0, _detachedNode.asDetachedNodeForCodeGen)(props.source)
739
+ });
740
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
741
+ return node;
742
+ }
743
+
744
+ function DeclareInterface(props) {
745
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
746
+ type: 'DeclareInterface',
747
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
748
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
749
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
750
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
751
+ });
752
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
753
+ return node;
754
+ }
755
+
756
+ function DeclareModule(props) {
757
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
758
+ type: 'DeclareModule',
759
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
760
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
761
+ });
762
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
763
+ return node;
764
+ }
765
+
766
+ function DeclareModuleExports(props) {
767
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
768
+ type: 'DeclareModuleExports',
769
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
770
+ });
771
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
772
+ return node;
773
+ }
774
+
775
+ function DeclareNamespace(props) {
776
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
777
+ type: 'DeclareNamespace',
778
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
779
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
780
+ });
781
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
782
+ return node;
783
+ }
784
+
785
+ function DeclareOpaqueType(props) {
786
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
787
+ type: 'DeclareOpaqueType',
788
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
789
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
790
+ impltype: (0, _detachedNode.asDetachedNodeForCodeGen)(props.impltype),
791
+ supertype: (0, _detachedNode.asDetachedNodeForCodeGen)(props.supertype)
792
+ });
793
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
794
+ return node;
795
+ }
796
+
797
+ function DeclareTypeAlias(props) {
798
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
799
+ type: 'DeclareTypeAlias',
800
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
801
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
802
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right)
803
+ });
804
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
805
+ return node;
806
+ }
807
+
808
+ function DeclareVariable(props) {
809
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
810
+ type: 'DeclareVariable',
811
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
812
+ kind: props.kind
813
+ });
814
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
815
+ return node;
816
+ }
817
+
818
+ function DoWhileStatement(props) {
819
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
820
+ type: 'DoWhileStatement',
821
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
822
+ test: (0, _detachedNode.asDetachedNodeForCodeGen)(props.test)
823
+ });
824
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
825
+ return node;
826
+ }
827
+
828
+ function EmptyStatement(props = { ...null
829
+ }) {
830
+ return (0, _detachedNode.detachedProps)(props.parent, {
831
+ type: 'EmptyStatement'
832
+ });
833
+ }
834
+
835
+ function EmptyTypeAnnotation(props = { ...null
836
+ }) {
837
+ return (0, _detachedNode.detachedProps)(props.parent, {
838
+ type: 'EmptyTypeAnnotation'
839
+ });
840
+ }
841
+
842
+ function EnumBigIntBody(props) {
843
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
844
+ type: 'EnumBigIntBody',
845
+ members: props.members.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
846
+ explicitType: props.explicitType,
847
+ hasUnknownMembers: props.hasUnknownMembers
848
+ });
849
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
850
+ return node;
851
+ }
852
+
853
+ function EnumBigIntMember(props) {
854
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
855
+ type: 'EnumBigIntMember',
856
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
857
+ init: (0, _detachedNode.asDetachedNodeForCodeGen)(props.init)
858
+ });
859
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
860
+ return node;
861
+ }
862
+
863
+ function EnumBooleanBody(props) {
864
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
865
+ type: 'EnumBooleanBody',
866
+ members: props.members.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
867
+ explicitType: props.explicitType,
868
+ hasUnknownMembers: props.hasUnknownMembers
869
+ });
870
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
871
+ return node;
872
+ }
873
+
874
+ function EnumBooleanMember(props) {
875
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
876
+ type: 'EnumBooleanMember',
877
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
878
+ init: (0, _detachedNode.asDetachedNodeForCodeGen)(props.init)
879
+ });
880
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
881
+ return node;
882
+ }
883
+
884
+ function EnumDeclaration(props) {
885
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
886
+ type: 'EnumDeclaration',
887
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
888
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
889
+ });
890
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
891
+ return node;
892
+ }
893
+
894
+ function EnumDefaultedMember(props) {
895
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
896
+ type: 'EnumDefaultedMember',
897
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id)
898
+ });
899
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
900
+ return node;
901
+ }
902
+
903
+ function EnumNumberBody(props) {
904
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
905
+ type: 'EnumNumberBody',
906
+ members: props.members.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
907
+ explicitType: props.explicitType,
908
+ hasUnknownMembers: props.hasUnknownMembers
909
+ });
910
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
911
+ return node;
912
+ }
913
+
914
+ function EnumNumberMember(props) {
915
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
916
+ type: 'EnumNumberMember',
917
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
918
+ init: (0, _detachedNode.asDetachedNodeForCodeGen)(props.init)
919
+ });
920
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
921
+ return node;
922
+ }
923
+
924
+ function EnumStringBody(props) {
925
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
926
+ type: 'EnumStringBody',
927
+ members: props.members.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
928
+ explicitType: props.explicitType,
929
+ hasUnknownMembers: props.hasUnknownMembers
930
+ });
931
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
932
+ return node;
933
+ }
934
+
935
+ function EnumStringMember(props) {
936
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
937
+ type: 'EnumStringMember',
938
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
939
+ init: (0, _detachedNode.asDetachedNodeForCodeGen)(props.init)
940
+ });
941
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
942
+ return node;
943
+ }
944
+
945
+ function EnumSymbolBody(props) {
946
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
947
+ type: 'EnumSymbolBody',
948
+ members: props.members.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
949
+ hasUnknownMembers: props.hasUnknownMembers
950
+ });
951
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
952
+ return node;
953
+ }
954
+
955
+ function ExistsTypeAnnotation(props = { ...null
956
+ }) {
957
+ return (0, _detachedNode.detachedProps)(props.parent, {
958
+ type: 'ExistsTypeAnnotation'
959
+ });
960
+ }
961
+
962
+ function ExportAllDeclaration(props) {
963
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
964
+ type: 'ExportAllDeclaration',
965
+ exported: (0, _detachedNode.asDetachedNodeForCodeGen)(props.exported),
966
+ source: (0, _detachedNode.asDetachedNodeForCodeGen)(props.source),
967
+ exportKind: props.exportKind
968
+ });
969
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
970
+ return node;
971
+ }
972
+
973
+ function ExportDefaultDeclaration(props) {
974
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
975
+ type: 'ExportDefaultDeclaration',
976
+ declaration: (0, _detachedNode.asDetachedNodeForCodeGen)(props.declaration)
977
+ });
978
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
979
+ return node;
980
+ }
981
+
982
+ function ExportSpecifier(props) {
983
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
984
+ type: 'ExportSpecifier',
985
+ exported: (0, _detachedNode.asDetachedNodeForCodeGen)(props.exported),
986
+ local: (0, _detachedNode.asDetachedNodeForCodeGen)(props.local)
987
+ });
988
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
989
+ return node;
990
+ }
991
+
992
+ function ExpressionStatement(props) {
993
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
994
+ type: 'ExpressionStatement',
995
+ expression: (0, _detachedNode.asDetachedNodeForCodeGen)(props.expression),
996
+ directive: props.directive
997
+ });
998
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
999
+ return node;
1000
+ }
1001
+
1002
+ function ForInStatement(props) {
1003
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1004
+ type: 'ForInStatement',
1005
+ left: (0, _detachedNode.asDetachedNodeForCodeGen)(props.left),
1006
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right),
1007
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
1008
+ });
1009
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1010
+ return node;
1011
+ }
1012
+
1013
+ function ForOfStatement(props) {
1014
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1015
+ type: 'ForOfStatement',
1016
+ left: (0, _detachedNode.asDetachedNodeForCodeGen)(props.left),
1017
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right),
1018
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
1019
+ await: props.await
1020
+ });
1021
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1022
+ return node;
1023
+ }
1024
+
1025
+ function ForStatement(props) {
1026
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1027
+ type: 'ForStatement',
1028
+ init: (0, _detachedNode.asDetachedNodeForCodeGen)(props.init),
1029
+ test: (0, _detachedNode.asDetachedNodeForCodeGen)(props.test),
1030
+ update: (0, _detachedNode.asDetachedNodeForCodeGen)(props.update),
1031
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
1032
+ });
1033
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1034
+ return node;
1035
+ }
1036
+
1037
+ function FunctionDeclaration(props) {
1038
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1039
+ type: 'FunctionDeclaration',
1040
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1041
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1042
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
1043
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
1044
+ returnType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.returnType),
1045
+ predicate: (0, _detachedNode.asDetachedNodeForCodeGen)(props.predicate),
1046
+ generator: props.generator,
1047
+ async: props.async
1048
+ });
1049
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1050
+ return node;
1051
+ }
1052
+
1053
+ function FunctionExpression(props) {
1054
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1055
+ type: 'FunctionExpression',
1056
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1057
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1058
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
1059
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
1060
+ returnType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.returnType),
1061
+ predicate: (0, _detachedNode.asDetachedNodeForCodeGen)(props.predicate),
1062
+ generator: props.generator,
1063
+ async: props.async
1064
+ });
1065
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1066
+ return node;
1067
+ }
1068
+
1069
+ function FunctionTypeAnnotation(props) {
1070
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1071
+ type: 'FunctionTypeAnnotation',
1072
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1073
+ this: (0, _detachedNode.asDetachedNodeForCodeGen)(props.this),
1074
+ returnType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.returnType),
1075
+ rest: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rest),
1076
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters)
1077
+ });
1078
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1079
+ return node;
1080
+ }
1081
+
1082
+ function FunctionTypeParam(props) {
1083
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1084
+ type: 'FunctionTypeParam',
1085
+ name: (0, _detachedNode.asDetachedNodeForCodeGen)(props.name),
1086
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation),
1087
+ optional: props.optional
1088
+ });
1089
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1090
+ return node;
1091
+ }
1092
+
1093
+ function GenericTypeAnnotation(props) {
1094
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1095
+ type: 'GenericTypeAnnotation',
1096
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1097
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters)
1098
+ });
1099
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1100
+ return node;
1101
+ }
1102
+
1103
+ function HookDeclaration(props) {
1104
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1105
+ type: 'HookDeclaration',
1106
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1107
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1108
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
1109
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
1110
+ returnType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.returnType)
1111
+ });
1112
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1113
+ return node;
1114
+ }
1115
+
1116
+ function HookTypeAnnotation(props) {
1117
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1118
+ type: 'HookTypeAnnotation',
1119
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1120
+ returnType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.returnType),
1121
+ rest: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rest),
1122
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters)
1123
+ });
1124
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1125
+ return node;
1126
+ }
1127
+
1128
+ function IfStatement(props) {
1129
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1130
+ type: 'IfStatement',
1131
+ test: (0, _detachedNode.asDetachedNodeForCodeGen)(props.test),
1132
+ consequent: (0, _detachedNode.asDetachedNodeForCodeGen)(props.consequent),
1133
+ alternate: (0, _detachedNode.asDetachedNodeForCodeGen)(props.alternate)
1134
+ });
1135
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1136
+ return node;
1137
+ }
1138
+
1139
+ function ImportAttribute(props) {
1140
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1141
+ type: 'ImportAttribute',
1142
+ key: (0, _detachedNode.asDetachedNodeForCodeGen)(props.key),
1143
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value)
1144
+ });
1145
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1146
+ return node;
1147
+ }
1148
+
1149
+ function ImportDeclaration(props) {
1150
+ var _props$assertions;
1151
+
1152
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1153
+ type: 'ImportDeclaration',
1154
+ specifiers: props.specifiers.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1155
+ source: (0, _detachedNode.asDetachedNodeForCodeGen)(props.source),
1156
+ assertions: (_props$assertions = props.assertions) == null ? void 0 : _props$assertions.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1157
+ importKind: props.importKind
1158
+ });
1159
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1160
+ return node;
1161
+ }
1162
+
1163
+ function ImportDefaultSpecifier(props) {
1164
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1165
+ type: 'ImportDefaultSpecifier',
1166
+ local: (0, _detachedNode.asDetachedNodeForCodeGen)(props.local)
1167
+ });
1168
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1169
+ return node;
1170
+ }
1171
+
1172
+ function ImportExpression(props) {
1173
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1174
+ type: 'ImportExpression',
1175
+ source: (0, _detachedNode.asDetachedNodeForCodeGen)(props.source),
1176
+ options: (0, _detachedNode.asDetachedNodeForCodeGen)(props.options)
1177
+ });
1178
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1179
+ return node;
1180
+ }
1181
+
1182
+ function ImportNamespaceSpecifier(props) {
1183
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1184
+ type: 'ImportNamespaceSpecifier',
1185
+ local: (0, _detachedNode.asDetachedNodeForCodeGen)(props.local)
1186
+ });
1187
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1188
+ return node;
1189
+ }
1190
+
1191
+ function ImportSpecifier(props) {
1192
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1193
+ type: 'ImportSpecifier',
1194
+ imported: (0, _detachedNode.asDetachedNodeForCodeGen)(props.imported),
1195
+ local: (0, _detachedNode.asDetachedNodeForCodeGen)(props.local),
1196
+ importKind: props.importKind
1197
+ });
1198
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1199
+ return node;
1200
+ }
1201
+
1202
+ function IndexedAccessType(props) {
1203
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1204
+ type: 'IndexedAccessType',
1205
+ objectType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.objectType),
1206
+ indexType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.indexType)
1207
+ });
1208
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1209
+ return node;
1210
+ }
1211
+
1212
+ function InferredPredicate(props = { ...null
1213
+ }) {
1214
+ return (0, _detachedNode.detachedProps)(props.parent, {
1215
+ type: 'InferredPredicate'
1216
+ });
1217
+ }
1218
+
1219
+ function InferTypeAnnotation(props) {
1220
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1221
+ type: 'InferTypeAnnotation',
1222
+ typeParameter: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameter)
1223
+ });
1224
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1225
+ return node;
1226
+ }
1227
+
1228
+ function InterfaceDeclaration(props) {
1229
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1230
+ type: 'InterfaceDeclaration',
1231
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1232
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
1233
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1234
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
1235
+ });
1236
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1237
+ return node;
1238
+ }
1239
+
1240
+ function InterfaceExtends(props) {
1241
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1242
+ type: 'InterfaceExtends',
1243
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1244
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters)
1245
+ });
1246
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1247
+ return node;
1248
+ }
1249
+
1250
+ function InterfaceTypeAnnotation(props) {
1251
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1252
+ type: 'InterfaceTypeAnnotation',
1253
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1254
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
1255
+ });
1256
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1257
+ return node;
1258
+ }
1259
+
1260
+ function IntersectionTypeAnnotation(props) {
1261
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1262
+ type: 'IntersectionTypeAnnotation',
1263
+ types: props.types.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1264
+ });
1265
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1266
+ return node;
1267
+ }
1268
+
1269
+ function JSXAttribute(props) {
1270
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1271
+ type: 'JSXAttribute',
1272
+ name: (0, _detachedNode.asDetachedNodeForCodeGen)(props.name),
1273
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value)
1274
+ });
1275
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1276
+ return node;
1277
+ }
1278
+
1279
+ function JSXClosingElement(props) {
1280
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1281
+ type: 'JSXClosingElement',
1282
+ name: (0, _detachedNode.asDetachedNodeForCodeGen)(props.name)
1283
+ });
1284
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1285
+ return node;
1286
+ }
1287
+
1288
+ function JSXClosingFragment(props = { ...null
1289
+ }) {
1290
+ return (0, _detachedNode.detachedProps)(props.parent, {
1291
+ type: 'JSXClosingFragment'
1292
+ });
1293
+ }
1294
+
1295
+ function JSXElement(props) {
1296
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1297
+ type: 'JSXElement',
1298
+ openingElement: (0, _detachedNode.asDetachedNodeForCodeGen)(props.openingElement),
1299
+ children: props.children.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1300
+ closingElement: (0, _detachedNode.asDetachedNodeForCodeGen)(props.closingElement)
1301
+ });
1302
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1303
+ return node;
1304
+ }
1305
+
1306
+ function JSXEmptyExpression(props = { ...null
1307
+ }) {
1308
+ return (0, _detachedNode.detachedProps)(props.parent, {
1309
+ type: 'JSXEmptyExpression'
1310
+ });
1311
+ }
1312
+
1313
+ function JSXExpressionContainer(props) {
1314
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1315
+ type: 'JSXExpressionContainer',
1316
+ expression: (0, _detachedNode.asDetachedNodeForCodeGen)(props.expression)
1317
+ });
1318
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1319
+ return node;
1320
+ }
1321
+
1322
+ function JSXFragment(props) {
1323
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1324
+ type: 'JSXFragment',
1325
+ openingFragment: (0, _detachedNode.asDetachedNodeForCodeGen)(props.openingFragment),
1326
+ children: props.children.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1327
+ closingFragment: (0, _detachedNode.asDetachedNodeForCodeGen)(props.closingFragment)
1328
+ });
1329
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1330
+ return node;
1331
+ }
1332
+
1333
+ function JSXIdentifier(props) {
1334
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1335
+ type: 'JSXIdentifier',
1336
+ name: props.name
1337
+ });
1338
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1339
+ return node;
1340
+ }
1341
+
1342
+ function JSXMemberExpression(props) {
1343
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1344
+ type: 'JSXMemberExpression',
1345
+ object: (0, _detachedNode.asDetachedNodeForCodeGen)(props.object),
1346
+ property: (0, _detachedNode.asDetachedNodeForCodeGen)(props.property)
1347
+ });
1348
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1349
+ return node;
1350
+ }
1351
+
1352
+ function JSXNamespacedName(props) {
1353
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1354
+ type: 'JSXNamespacedName',
1355
+ namespace: (0, _detachedNode.asDetachedNodeForCodeGen)(props.namespace),
1356
+ name: (0, _detachedNode.asDetachedNodeForCodeGen)(props.name)
1357
+ });
1358
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1359
+ return node;
1360
+ }
1361
+
1362
+ function JSXOpeningElement(props) {
1363
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1364
+ type: 'JSXOpeningElement',
1365
+ name: (0, _detachedNode.asDetachedNodeForCodeGen)(props.name),
1366
+ attributes: props.attributes.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1367
+ selfClosing: props.selfClosing,
1368
+ typeArguments: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeArguments)
1369
+ });
1370
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1371
+ return node;
1372
+ }
1373
+
1374
+ function JSXOpeningFragment(props = { ...null
1375
+ }) {
1376
+ return (0, _detachedNode.detachedProps)(props.parent, {
1377
+ type: 'JSXOpeningFragment'
1378
+ });
1379
+ }
1380
+
1381
+ function JSXSpreadAttribute(props) {
1382
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1383
+ type: 'JSXSpreadAttribute',
1384
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1385
+ });
1386
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1387
+ return node;
1388
+ }
1389
+
1390
+ function JSXSpreadChild(props) {
1391
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1392
+ type: 'JSXSpreadChild',
1393
+ expression: (0, _detachedNode.asDetachedNodeForCodeGen)(props.expression)
1394
+ });
1395
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1396
+ return node;
1397
+ }
1398
+
1399
+ function JSXText(props) {
1400
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1401
+ type: 'JSXText',
1402
+ value: props.value,
1403
+ raw: props.raw
1404
+ });
1405
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1406
+ return node;
1407
+ }
1408
+
1409
+ function KeyofTypeAnnotation(props) {
1410
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1411
+ type: 'KeyofTypeAnnotation',
1412
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1413
+ });
1414
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1415
+ return node;
1416
+ }
1417
+
1418
+ function LabeledStatement(props) {
1419
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1420
+ type: 'LabeledStatement',
1421
+ label: (0, _detachedNode.asDetachedNodeForCodeGen)(props.label),
1422
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
1423
+ });
1424
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1425
+ return node;
1426
+ }
1427
+
1428
+ function LogicalExpression(props) {
1429
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1430
+ type: 'LogicalExpression',
1431
+ left: (0, _detachedNode.asDetachedNodeForCodeGen)(props.left),
1432
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right),
1433
+ operator: props.operator
1434
+ });
1435
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1436
+ return node;
1437
+ }
1438
+
1439
+ function MatchArrayPattern(props) {
1440
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1441
+ type: 'MatchArrayPattern',
1442
+ elements: props.elements.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1443
+ rest: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rest)
1444
+ });
1445
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1446
+ return node;
1447
+ }
1448
+
1449
+ function MatchAsPattern(props) {
1450
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1451
+ type: 'MatchAsPattern',
1452
+ pattern: (0, _detachedNode.asDetachedNodeForCodeGen)(props.pattern),
1453
+ target: (0, _detachedNode.asDetachedNodeForCodeGen)(props.target)
1454
+ });
1455
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1456
+ return node;
1457
+ }
1458
+
1459
+ function MatchBindingPattern(props) {
1460
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1461
+ type: 'MatchBindingPattern',
1462
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1463
+ kind: props.kind
1464
+ });
1465
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1466
+ return node;
1467
+ }
1468
+
1469
+ function MatchExpression(props) {
1470
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1471
+ type: 'MatchExpression',
1472
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument),
1473
+ cases: props.cases.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1474
+ });
1475
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1476
+ return node;
1477
+ }
1478
+
1479
+ function MatchExpressionCase(props) {
1480
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1481
+ type: 'MatchExpressionCase',
1482
+ pattern: (0, _detachedNode.asDetachedNodeForCodeGen)(props.pattern),
1483
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
1484
+ guard: (0, _detachedNode.asDetachedNodeForCodeGen)(props.guard)
1485
+ });
1486
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1487
+ return node;
1488
+ }
1489
+
1490
+ function MatchIdentifierPattern(props) {
1491
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1492
+ type: 'MatchIdentifierPattern',
1493
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id)
1494
+ });
1495
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1496
+ return node;
1497
+ }
1498
+
1499
+ function MatchLiteralPattern(props) {
1500
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1501
+ type: 'MatchLiteralPattern',
1502
+ literal: (0, _detachedNode.asDetachedNodeForCodeGen)(props.literal)
1503
+ });
1504
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1505
+ return node;
1506
+ }
1507
+
1508
+ function MatchMemberPattern(props) {
1509
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1510
+ type: 'MatchMemberPattern',
1511
+ base: (0, _detachedNode.asDetachedNodeForCodeGen)(props.base),
1512
+ property: (0, _detachedNode.asDetachedNodeForCodeGen)(props.property)
1513
+ });
1514
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1515
+ return node;
1516
+ }
1517
+
1518
+ function MatchObjectPattern(props) {
1519
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1520
+ type: 'MatchObjectPattern',
1521
+ properties: props.properties.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1522
+ rest: (0, _detachedNode.asDetachedNodeForCodeGen)(props.rest)
1523
+ });
1524
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1525
+ return node;
1526
+ }
1527
+
1528
+ function MatchObjectPatternProperty(props) {
1529
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1530
+ type: 'MatchObjectPatternProperty',
1531
+ key: (0, _detachedNode.asDetachedNodeForCodeGen)(props.key),
1532
+ pattern: (0, _detachedNode.asDetachedNodeForCodeGen)(props.pattern),
1533
+ shorthand: props.shorthand
1534
+ });
1535
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1536
+ return node;
1537
+ }
1538
+
1539
+ function MatchOrPattern(props) {
1540
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1541
+ type: 'MatchOrPattern',
1542
+ patterns: props.patterns.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1543
+ });
1544
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1545
+ return node;
1546
+ }
1547
+
1548
+ function MatchRestPattern(props) {
1549
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1550
+ type: 'MatchRestPattern',
1551
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1552
+ });
1553
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1554
+ return node;
1555
+ }
1556
+
1557
+ function MatchStatement(props) {
1558
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1559
+ type: 'MatchStatement',
1560
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument),
1561
+ cases: props.cases.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1562
+ });
1563
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1564
+ return node;
1565
+ }
1566
+
1567
+ function MatchStatementCase(props) {
1568
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1569
+ type: 'MatchStatementCase',
1570
+ pattern: (0, _detachedNode.asDetachedNodeForCodeGen)(props.pattern),
1571
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
1572
+ guard: (0, _detachedNode.asDetachedNodeForCodeGen)(props.guard)
1573
+ });
1574
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1575
+ return node;
1576
+ }
1577
+
1578
+ function MatchUnaryPattern(props) {
1579
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1580
+ type: 'MatchUnaryPattern',
1581
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument),
1582
+ operator: props.operator
1583
+ });
1584
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1585
+ return node;
1586
+ }
1587
+
1588
+ function MatchWildcardPattern(props = { ...null
1589
+ }) {
1590
+ return (0, _detachedNode.detachedProps)(props.parent, {
1591
+ type: 'MatchWildcardPattern'
1592
+ });
1593
+ }
1594
+
1595
+ function MetaProperty(props) {
1596
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1597
+ type: 'MetaProperty',
1598
+ meta: (0, _detachedNode.asDetachedNodeForCodeGen)(props.meta),
1599
+ property: (0, _detachedNode.asDetachedNodeForCodeGen)(props.property)
1600
+ });
1601
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1602
+ return node;
1603
+ }
1604
+
1605
+ function MethodDefinition(props) {
1606
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1607
+ type: 'MethodDefinition',
1608
+ key: (0, _detachedNode.asDetachedNodeForCodeGen)(props.key),
1609
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value),
1610
+ kind: props.kind,
1611
+ computed: props.computed,
1612
+ static: props.static
1613
+ });
1614
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1615
+ return node;
1616
+ }
1617
+
1618
+ function MixedTypeAnnotation(props = { ...null
1619
+ }) {
1620
+ return (0, _detachedNode.detachedProps)(props.parent, {
1621
+ type: 'MixedTypeAnnotation'
1622
+ });
1623
+ }
1624
+
1625
+ function NewExpression(props) {
1626
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1627
+ type: 'NewExpression',
1628
+ callee: (0, _detachedNode.asDetachedNodeForCodeGen)(props.callee),
1629
+ typeArguments: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeArguments),
1630
+ arguments: props.arguments.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1631
+ });
1632
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1633
+ return node;
1634
+ }
1635
+
1636
+ function NullableTypeAnnotation(props) {
1637
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1638
+ type: 'NullableTypeAnnotation',
1639
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
1640
+ });
1641
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1642
+ return node;
1643
+ }
1644
+
1645
+ function NullLiteralTypeAnnotation(props = { ...null
1646
+ }) {
1647
+ return (0, _detachedNode.detachedProps)(props.parent, {
1648
+ type: 'NullLiteralTypeAnnotation'
1649
+ });
1650
+ }
1651
+
1652
+ function NumberLiteralTypeAnnotation(props) {
1653
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1654
+ type: 'NumberLiteralTypeAnnotation',
1655
+ value: props.value,
1656
+ raw: props.raw
1657
+ });
1658
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1659
+ return node;
1660
+ }
1661
+
1662
+ function NumberTypeAnnotation(props = { ...null
1663
+ }) {
1664
+ return (0, _detachedNode.detachedProps)(props.parent, {
1665
+ type: 'NumberTypeAnnotation'
1666
+ });
1667
+ }
1668
+
1669
+ function ObjectExpression(props) {
1670
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1671
+ type: 'ObjectExpression',
1672
+ properties: props.properties.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1673
+ });
1674
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1675
+ return node;
1676
+ }
1677
+
1678
+ function ObjectPattern(props) {
1679
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1680
+ type: 'ObjectPattern',
1681
+ properties: props.properties.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1682
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
1683
+ });
1684
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1685
+ return node;
1686
+ }
1687
+
1688
+ function ObjectTypeAnnotation(props) {
1689
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1690
+ type: 'ObjectTypeAnnotation',
1691
+ properties: props.properties.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1692
+ indexers: props.indexers.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1693
+ callProperties: props.callProperties.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1694
+ internalSlots: props.internalSlots.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1695
+ inexact: props.inexact,
1696
+ exact: props.exact
1697
+ });
1698
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1699
+ return node;
1700
+ }
1701
+
1702
+ function ObjectTypeCallProperty(props) {
1703
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1704
+ type: 'ObjectTypeCallProperty',
1705
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value),
1706
+ static: props.static
1707
+ });
1708
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1709
+ return node;
1710
+ }
1711
+
1712
+ function ObjectTypeIndexer(props) {
1713
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1714
+ type: 'ObjectTypeIndexer',
1715
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1716
+ key: (0, _detachedNode.asDetachedNodeForCodeGen)(props.key),
1717
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value),
1718
+ static: props.static,
1719
+ variance: (0, _detachedNode.asDetachedNodeForCodeGen)(props.variance)
1720
+ });
1721
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1722
+ return node;
1723
+ }
1724
+
1725
+ function ObjectTypeInternalSlot(props) {
1726
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1727
+ type: 'ObjectTypeInternalSlot',
1728
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1729
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value),
1730
+ optional: props.optional,
1731
+ static: props.static,
1732
+ method: props.method
1733
+ });
1734
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1735
+ return node;
1736
+ }
1737
+
1738
+ function ObjectTypeMappedTypeProperty(props) {
1739
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1740
+ type: 'ObjectTypeMappedTypeProperty',
1741
+ keyTparam: (0, _detachedNode.asDetachedNodeForCodeGen)(props.keyTparam),
1742
+ propType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.propType),
1743
+ sourceType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.sourceType),
1744
+ variance: (0, _detachedNode.asDetachedNodeForCodeGen)(props.variance),
1745
+ optional: props.optional
1746
+ });
1747
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1748
+ return node;
1749
+ }
1750
+
1751
+ function ObjectTypeSpreadProperty(props) {
1752
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1753
+ type: 'ObjectTypeSpreadProperty',
1754
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1755
+ });
1756
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1757
+ return node;
1758
+ }
1759
+
1760
+ function OpaqueType(props) {
1761
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1762
+ type: 'OpaqueType',
1763
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
1764
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
1765
+ impltype: (0, _detachedNode.asDetachedNodeForCodeGen)(props.impltype),
1766
+ supertype: (0, _detachedNode.asDetachedNodeForCodeGen)(props.supertype)
1767
+ });
1768
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1769
+ return node;
1770
+ }
1771
+
1772
+ function OptionalIndexedAccessType(props) {
1773
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1774
+ type: 'OptionalIndexedAccessType',
1775
+ objectType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.objectType),
1776
+ indexType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.indexType),
1777
+ optional: props.optional
1778
+ });
1779
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1780
+ return node;
1781
+ }
1782
+
1783
+ function PrivateIdentifier(props) {
1784
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1785
+ type: 'PrivateIdentifier',
1786
+ name: props.name
1787
+ });
1788
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1789
+ return node;
1790
+ }
1791
+
1792
+ function Property(props) {
1793
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1794
+ type: 'Property',
1795
+ key: (0, _detachedNode.asDetachedNodeForCodeGen)(props.key),
1796
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value),
1797
+ kind: props.kind,
1798
+ computed: props.computed,
1799
+ method: props.method,
1800
+ shorthand: props.shorthand
1801
+ });
1802
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1803
+ return node;
1804
+ }
1805
+
1806
+ function PropertyDefinition(props) {
1807
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1808
+ type: 'PropertyDefinition',
1809
+ key: (0, _detachedNode.asDetachedNodeForCodeGen)(props.key),
1810
+ value: (0, _detachedNode.asDetachedNodeForCodeGen)(props.value),
1811
+ computed: props.computed,
1812
+ static: props.static,
1813
+ declare: props.declare,
1814
+ optional: props.optional,
1815
+ variance: (0, _detachedNode.asDetachedNodeForCodeGen)(props.variance),
1816
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
1817
+ });
1818
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1819
+ return node;
1820
+ }
1821
+
1822
+ function QualifiedTypeIdentifier(props) {
1823
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1824
+ type: 'QualifiedTypeIdentifier',
1825
+ qualification: (0, _detachedNode.asDetachedNodeForCodeGen)(props.qualification),
1826
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id)
1827
+ });
1828
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1829
+ return node;
1830
+ }
1831
+
1832
+ function QualifiedTypeofIdentifier(props) {
1833
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1834
+ type: 'QualifiedTypeofIdentifier',
1835
+ qualification: (0, _detachedNode.asDetachedNodeForCodeGen)(props.qualification),
1836
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id)
1837
+ });
1838
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1839
+ return node;
1840
+ }
1841
+
1842
+ function RestElement(props) {
1843
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1844
+ type: 'RestElement',
1845
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1846
+ });
1847
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1848
+ return node;
1849
+ }
1850
+
1851
+ function ReturnStatement(props) {
1852
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1853
+ type: 'ReturnStatement',
1854
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1855
+ });
1856
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1857
+ return node;
1858
+ }
1859
+
1860
+ function SequenceExpression(props) {
1861
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1862
+ type: 'SequenceExpression',
1863
+ expressions: props.expressions.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1864
+ });
1865
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1866
+ return node;
1867
+ }
1868
+
1869
+ function SpreadElement(props) {
1870
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1871
+ type: 'SpreadElement',
1872
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1873
+ });
1874
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1875
+ return node;
1876
+ }
1877
+
1878
+ function StaticBlock(props) {
1879
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1880
+ type: 'StaticBlock',
1881
+ body: props.body.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1882
+ });
1883
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1884
+ return node;
1885
+ }
1886
+
1887
+ function StringLiteralTypeAnnotation(props) {
1888
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1889
+ type: 'StringLiteralTypeAnnotation',
1890
+ value: props.value,
1891
+ raw: props.raw
1892
+ });
1893
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1894
+ return node;
1895
+ }
1896
+
1897
+ function StringTypeAnnotation(props = { ...null
1898
+ }) {
1899
+ return (0, _detachedNode.detachedProps)(props.parent, {
1900
+ type: 'StringTypeAnnotation'
1901
+ });
1902
+ }
1903
+
1904
+ function Super(props = { ...null
1905
+ }) {
1906
+ return (0, _detachedNode.detachedProps)(props.parent, {
1907
+ type: 'Super'
1908
+ });
1909
+ }
1910
+
1911
+ function SwitchCase(props) {
1912
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1913
+ type: 'SwitchCase',
1914
+ test: (0, _detachedNode.asDetachedNodeForCodeGen)(props.test),
1915
+ consequent: props.consequent.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1916
+ });
1917
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1918
+ return node;
1919
+ }
1920
+
1921
+ function SwitchStatement(props) {
1922
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1923
+ type: 'SwitchStatement',
1924
+ discriminant: (0, _detachedNode.asDetachedNodeForCodeGen)(props.discriminant),
1925
+ cases: props.cases.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1926
+ });
1927
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1928
+ return node;
1929
+ }
1930
+
1931
+ function SymbolTypeAnnotation(props = { ...null
1932
+ }) {
1933
+ return (0, _detachedNode.detachedProps)(props.parent, {
1934
+ type: 'SymbolTypeAnnotation'
1935
+ });
1936
+ }
1937
+
1938
+ function TaggedTemplateExpression(props) {
1939
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1940
+ type: 'TaggedTemplateExpression',
1941
+ tag: (0, _detachedNode.asDetachedNodeForCodeGen)(props.tag),
1942
+ quasi: (0, _detachedNode.asDetachedNodeForCodeGen)(props.quasi)
1943
+ });
1944
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1945
+ return node;
1946
+ }
1947
+
1948
+ function TemplateLiteral(props) {
1949
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1950
+ type: 'TemplateLiteral',
1951
+ quasis: props.quasis.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1952
+ expressions: props.expressions.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
1953
+ });
1954
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1955
+ return node;
1956
+ }
1957
+
1958
+ function ThisExpression(props = { ...null
1959
+ }) {
1960
+ return (0, _detachedNode.detachedProps)(props.parent, {
1961
+ type: 'ThisExpression'
1962
+ });
1963
+ }
1964
+
1965
+ function ThisTypeAnnotation(props = { ...null
1966
+ }) {
1967
+ return (0, _detachedNode.detachedProps)(props.parent, {
1968
+ type: 'ThisTypeAnnotation'
1969
+ });
1970
+ }
1971
+
1972
+ function ThrowStatement(props) {
1973
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1974
+ type: 'ThrowStatement',
1975
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument)
1976
+ });
1977
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1978
+ return node;
1979
+ }
1980
+
1981
+ function TryStatement(props) {
1982
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1983
+ type: 'TryStatement',
1984
+ block: (0, _detachedNode.asDetachedNodeForCodeGen)(props.block),
1985
+ handler: (0, _detachedNode.asDetachedNodeForCodeGen)(props.handler),
1986
+ finalizer: (0, _detachedNode.asDetachedNodeForCodeGen)(props.finalizer)
1987
+ });
1988
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1989
+ return node;
1990
+ }
1991
+
1992
+ function TupleTypeAnnotation(props) {
1993
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1994
+ type: 'TupleTypeAnnotation',
1995
+ types: props.types.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n)),
1996
+ inexact: props.inexact
1997
+ });
1998
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
1999
+ return node;
2000
+ }
2001
+
2002
+ function TupleTypeLabeledElement(props) {
2003
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2004
+ type: 'TupleTypeLabeledElement',
2005
+ label: (0, _detachedNode.asDetachedNodeForCodeGen)(props.label),
2006
+ elementType: (0, _detachedNode.asDetachedNodeForCodeGen)(props.elementType),
2007
+ optional: props.optional,
2008
+ variance: (0, _detachedNode.asDetachedNodeForCodeGen)(props.variance)
2009
+ });
2010
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2011
+ return node;
2012
+ }
2013
+
2014
+ function TupleTypeSpreadElement(props) {
2015
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2016
+ type: 'TupleTypeSpreadElement',
2017
+ label: (0, _detachedNode.asDetachedNodeForCodeGen)(props.label),
2018
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
2019
+ });
2020
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2021
+ return node;
2022
+ }
2023
+
2024
+ function TypeAlias(props) {
2025
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2026
+ type: 'TypeAlias',
2027
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id),
2028
+ typeParameters: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeParameters),
2029
+ right: (0, _detachedNode.asDetachedNodeForCodeGen)(props.right)
2030
+ });
2031
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2032
+ return node;
2033
+ }
2034
+
2035
+ function TypeAnnotation(props) {
2036
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2037
+ type: 'TypeAnnotation',
2038
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
2039
+ });
2040
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2041
+ return node;
2042
+ }
2043
+
2044
+ function TypeCastExpression(props) {
2045
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2046
+ type: 'TypeCastExpression',
2047
+ expression: (0, _detachedNode.asDetachedNodeForCodeGen)(props.expression),
2048
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
2049
+ });
2050
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2051
+ return node;
2052
+ }
2053
+
2054
+ function TypeofTypeAnnotation(props) {
2055
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2056
+ type: 'TypeofTypeAnnotation',
2057
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument),
2058
+ typeArguments: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeArguments)
2059
+ });
2060
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2061
+ return node;
2062
+ }
2063
+
2064
+ function TypeOperator(props) {
2065
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2066
+ type: 'TypeOperator',
2067
+ operator: props.operator,
2068
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation)
2069
+ });
2070
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2071
+ return node;
2072
+ }
2073
+
2074
+ function TypeParameter(props) {
2075
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2076
+ type: 'TypeParameter',
2077
+ name: props.name,
2078
+ const: props.const,
2079
+ bound: (0, _detachedNode.asDetachedNodeForCodeGen)(props.bound),
2080
+ variance: (0, _detachedNode.asDetachedNodeForCodeGen)(props.variance),
2081
+ default: (0, _detachedNode.asDetachedNodeForCodeGen)(props.default),
2082
+ usesExtendsBound: props.usesExtendsBound
2083
+ });
2084
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2085
+ return node;
2086
+ }
2087
+
2088
+ function TypeParameterDeclaration(props) {
2089
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2090
+ type: 'TypeParameterDeclaration',
2091
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
2092
+ });
2093
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2094
+ return node;
2095
+ }
2096
+
2097
+ function TypeParameterInstantiation(props) {
2098
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2099
+ type: 'TypeParameterInstantiation',
2100
+ params: props.params.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
2101
+ });
2102
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2103
+ return node;
2104
+ }
2105
+
2106
+ function TypePredicate(props) {
2107
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2108
+ type: 'TypePredicate',
2109
+ parameterName: (0, _detachedNode.asDetachedNodeForCodeGen)(props.parameterName),
2110
+ typeAnnotation: (0, _detachedNode.asDetachedNodeForCodeGen)(props.typeAnnotation),
2111
+ kind: props.kind
2112
+ });
2113
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2114
+ return node;
2115
+ }
2116
+
2117
+ function UnaryExpression(props) {
2118
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2119
+ type: 'UnaryExpression',
2120
+ operator: props.operator,
2121
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument),
2122
+ prefix: props.prefix
2123
+ });
2124
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2125
+ return node;
2126
+ }
2127
+
2128
+ function UnionTypeAnnotation(props) {
2129
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2130
+ type: 'UnionTypeAnnotation',
2131
+ types: props.types.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
2132
+ });
2133
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2134
+ return node;
2135
+ }
2136
+
2137
+ function UpdateExpression(props) {
2138
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2139
+ type: 'UpdateExpression',
2140
+ operator: props.operator,
2141
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument),
2142
+ prefix: props.prefix
2143
+ });
2144
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2145
+ return node;
2146
+ }
2147
+
2148
+ function VariableDeclaration(props) {
2149
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2150
+ type: 'VariableDeclaration',
2151
+ kind: props.kind,
2152
+ declarations: props.declarations.map(n => (0, _detachedNode.asDetachedNodeForCodeGen)(n))
2153
+ });
2154
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2155
+ return node;
2156
+ }
2157
+
2158
+ function VariableDeclarator(props) {
2159
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2160
+ type: 'VariableDeclarator',
2161
+ init: (0, _detachedNode.asDetachedNodeForCodeGen)(props.init),
2162
+ id: (0, _detachedNode.asDetachedNodeForCodeGen)(props.id)
2163
+ });
2164
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2165
+ return node;
2166
+ }
2167
+
2168
+ function Variance(props) {
2169
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2170
+ type: 'Variance',
2171
+ kind: props.kind
2172
+ });
2173
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2174
+ return node;
2175
+ }
2176
+
2177
+ function VoidTypeAnnotation(props = { ...null
2178
+ }) {
2179
+ return (0, _detachedNode.detachedProps)(props.parent, {
2180
+ type: 'VoidTypeAnnotation'
2181
+ });
2182
+ }
2183
+
2184
+ function WhileStatement(props) {
2185
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2186
+ type: 'WhileStatement',
2187
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body),
2188
+ test: (0, _detachedNode.asDetachedNodeForCodeGen)(props.test)
2189
+ });
2190
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2191
+ return node;
2192
+ }
2193
+
2194
+ function WithStatement(props) {
2195
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2196
+ type: 'WithStatement',
2197
+ object: (0, _detachedNode.asDetachedNodeForCodeGen)(props.object),
2198
+ body: (0, _detachedNode.asDetachedNodeForCodeGen)(props.body)
2199
+ });
2200
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2201
+ return node;
2202
+ }
2203
+
2204
+ function YieldExpression(props) {
2205
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2206
+ type: 'YieldExpression',
2207
+ argument: (0, _detachedNode.asDetachedNodeForCodeGen)(props.argument),
2208
+ delegate: props.delegate
2209
+ });
2210
+ (0, _detachedNode.setParentPointersInDirectChildren)(node);
2211
+ return node;
2212
+ }