hermes-transform 0.5.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 (74) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +8 -0
  3. package/dist/detachedNode.js +128 -0
  4. package/dist/detachedNode.js.flow +113 -0
  5. package/dist/generated/TransformCloneSignatures.js.flow +19 -0
  6. package/dist/generated/TransformReplaceSignatures.js.flow +943 -0
  7. package/dist/generated/node-types.js +2071 -0
  8. package/dist/generated/node-types.js.flow +3149 -0
  9. package/dist/generated/special-case-node-types.js +178 -0
  10. package/dist/generated/special-case-node-types.js.flow +248 -0
  11. package/dist/getVisitorKeys.js +35 -0
  12. package/dist/getVisitorKeys.js.flow +31 -0
  13. package/dist/index.js +41 -0
  14. package/dist/index.js.flow +15 -0
  15. package/dist/transform/Errors.js +151 -0
  16. package/dist/transform/Errors.js.flow +17 -0
  17. package/dist/transform/MutationContext.js +94 -0
  18. package/dist/transform/MutationContext.js.flow +80 -0
  19. package/dist/transform/TransformContext.js +136 -0
  20. package/dist/transform/TransformContext.js.flow +378 -0
  21. package/dist/transform/comments/comments.js +140 -0
  22. package/dist/transform/comments/comments.js.flow +145 -0
  23. package/dist/transform/comments/prettier/README.md +6 -0
  24. package/dist/transform/comments/prettier/common/util.js +365 -0
  25. package/dist/transform/comments/prettier/common/util.js.flow +349 -0
  26. package/dist/transform/comments/prettier/language-js/comments.js +777 -0
  27. package/dist/transform/comments/prettier/language-js/comments.js.flow +950 -0
  28. package/dist/transform/comments/prettier/language-js/loc.js +41 -0
  29. package/dist/transform/comments/prettier/language-js/loc.js.flow +41 -0
  30. package/dist/transform/comments/prettier/language-js/printer-estree.js +31 -0
  31. package/dist/transform/comments/prettier/language-js/printer-estree.js.flow +37 -0
  32. package/dist/transform/comments/prettier/language-js/utils.js +131 -0
  33. package/dist/transform/comments/prettier/language-js/utils.js.flow +135 -0
  34. package/dist/transform/comments/prettier/main/comments.js +513 -0
  35. package/dist/transform/comments/prettier/main/comments.js.flow +436 -0
  36. package/dist/transform/comments/prettier/utils/get-last.js +15 -0
  37. package/dist/transform/comments/prettier/utils/get-last.js.flow +14 -0
  38. package/dist/transform/getTransformedAST.js +159 -0
  39. package/dist/transform/getTransformedAST.js.flow +128 -0
  40. package/dist/transform/mutations/AddLeadingComments.js +47 -0
  41. package/dist/transform/mutations/AddLeadingComments.js.flow +49 -0
  42. package/dist/transform/mutations/AddTrailingComments.js +47 -0
  43. package/dist/transform/mutations/AddTrailingComments.js.flow +49 -0
  44. package/dist/transform/mutations/CloneCommentsTo.js +46 -0
  45. package/dist/transform/mutations/CloneCommentsTo.js.flow +51 -0
  46. package/dist/transform/mutations/InsertStatement.js +92 -0
  47. package/dist/transform/mutations/InsertStatement.js.flow +113 -0
  48. package/dist/transform/mutations/RemoveComment.js +96 -0
  49. package/dist/transform/mutations/RemoveComment.js.flow +80 -0
  50. package/dist/transform/mutations/RemoveStatement.js +61 -0
  51. package/dist/transform/mutations/RemoveStatement.js.flow +68 -0
  52. package/dist/transform/mutations/ReplaceNode.js +96 -0
  53. package/dist/transform/mutations/ReplaceNode.js.flow +113 -0
  54. package/dist/transform/mutations/ReplaceStatementWithMany.js +81 -0
  55. package/dist/transform/mutations/ReplaceStatementWithMany.js.flow +102 -0
  56. package/dist/transform/mutations/utils/arrayUtils.js +41 -0
  57. package/dist/transform/mutations/utils/arrayUtils.js.flow +35 -0
  58. package/dist/transform/mutations/utils/getStatementParent.js +147 -0
  59. package/dist/transform/mutations/utils/getStatementParent.js.flow +143 -0
  60. package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js +53 -0
  61. package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js.flow +50 -0
  62. package/dist/transform/transform.js +69 -0
  63. package/dist/transform/transform.js.flow +60 -0
  64. package/dist/traverse/NodeEventGenerator.js +427 -0
  65. package/dist/traverse/NodeEventGenerator.js.flow +406 -0
  66. package/dist/traverse/SafeEmitter.js +70 -0
  67. package/dist/traverse/SafeEmitter.js.flow +46 -0
  68. package/dist/traverse/SimpleTraverser.js +149 -0
  69. package/dist/traverse/SimpleTraverser.js.flow +109 -0
  70. package/dist/traverse/esquery.js +37 -0
  71. package/dist/traverse/esquery.js.flow +173 -0
  72. package/dist/traverse/traverse.js +139 -0
  73. package/dist/traverse/traverse.js.flow +149 -0
  74. package/package.json +22 -0
@@ -0,0 +1,943 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its 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
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ import type {
14
+ ESNode,
15
+ AnyTypeAnnotation,
16
+ ArrayExpression,
17
+ ArrayPattern,
18
+ ArrayTypeAnnotation,
19
+ ArrowFunctionExpression,
20
+ AssignmentExpression,
21
+ AssignmentPattern,
22
+ AwaitExpression,
23
+ BinaryExpression,
24
+ BlockStatement,
25
+ BooleanLiteralTypeAnnotation,
26
+ BooleanTypeAnnotation,
27
+ BreakStatement,
28
+ CallExpression,
29
+ CatchClause,
30
+ ClassBody,
31
+ ClassDeclaration,
32
+ ClassExpression,
33
+ ClassImplements,
34
+ ClassPrivateProperty,
35
+ ClassProperty,
36
+ ConditionalExpression,
37
+ ContinueStatement,
38
+ DebuggerStatement,
39
+ DeclareClass,
40
+ DeclaredPredicate,
41
+ DeclareExportAllDeclaration,
42
+ DeclareExportDeclaration,
43
+ DeclareFunction,
44
+ DeclareInterface,
45
+ DeclareModule,
46
+ DeclareModuleExports,
47
+ DeclareOpaqueType,
48
+ DeclareTypeAlias,
49
+ DeclareVariable,
50
+ DoWhileStatement,
51
+ EmptyStatement,
52
+ EmptyTypeAnnotation,
53
+ EnumBooleanBody,
54
+ EnumBooleanMember,
55
+ EnumDeclaration,
56
+ EnumDefaultedMember,
57
+ EnumNumberBody,
58
+ EnumNumberMember,
59
+ EnumStringBody,
60
+ EnumStringMember,
61
+ EnumSymbolBody,
62
+ ExistsTypeAnnotation,
63
+ ExportAllDeclaration,
64
+ ExportDefaultDeclaration,
65
+ ExportNamedDeclaration,
66
+ ExportNamespaceSpecifier,
67
+ ExportSpecifier,
68
+ ExpressionStatement,
69
+ ForInStatement,
70
+ ForOfStatement,
71
+ ForStatement,
72
+ FunctionDeclaration,
73
+ FunctionExpression,
74
+ FunctionTypeAnnotation,
75
+ FunctionTypeParam,
76
+ GenericTypeAnnotation,
77
+ Identifier,
78
+ IfStatement,
79
+ ImportAttribute,
80
+ ImportDeclaration,
81
+ ImportDefaultSpecifier,
82
+ ImportExpression,
83
+ ImportNamespaceSpecifier,
84
+ ImportSpecifier,
85
+ IndexedAccessType,
86
+ InferredPredicate,
87
+ InterfaceDeclaration,
88
+ InterfaceExtends,
89
+ InterfaceTypeAnnotation,
90
+ IntersectionTypeAnnotation,
91
+ JSXAttribute,
92
+ JSXClosingElement,
93
+ JSXClosingFragment,
94
+ JSXElement,
95
+ JSXEmptyExpression,
96
+ JSXExpressionContainer,
97
+ JSXFragment,
98
+ JSXIdentifier,
99
+ JSXMemberExpression,
100
+ JSXNamespacedName,
101
+ JSXOpeningElement,
102
+ JSXOpeningFragment,
103
+ JSXSpreadAttribute,
104
+ JSXSpreadChild,
105
+ JSXText,
106
+ LabeledStatement,
107
+ LogicalExpression,
108
+ MemberExpression,
109
+ MetaProperty,
110
+ MethodDefinition,
111
+ MixedTypeAnnotation,
112
+ NewExpression,
113
+ NullableTypeAnnotation,
114
+ NullLiteralTypeAnnotation,
115
+ NumberLiteralTypeAnnotation,
116
+ NumberTypeAnnotation,
117
+ ObjectExpression,
118
+ ObjectPattern,
119
+ ObjectTypeAnnotation,
120
+ ObjectTypeCallProperty,
121
+ ObjectTypeIndexer,
122
+ ObjectTypeInternalSlot,
123
+ ObjectTypeProperty,
124
+ ObjectTypeSpreadProperty,
125
+ OpaqueType,
126
+ OptionalCallExpression,
127
+ OptionalIndexedAccessType,
128
+ OptionalMemberExpression,
129
+ PrivateName,
130
+ Program,
131
+ Property,
132
+ QualifiedTypeIdentifier,
133
+ RestElement,
134
+ ReturnStatement,
135
+ SequenceExpression,
136
+ SpreadElement,
137
+ StringLiteralTypeAnnotation,
138
+ StringTypeAnnotation,
139
+ Super,
140
+ SwitchCase,
141
+ SwitchStatement,
142
+ SymbolTypeAnnotation,
143
+ TaggedTemplateExpression,
144
+ TemplateElement,
145
+ TemplateLiteral,
146
+ ThisExpression,
147
+ ThisTypeAnnotation,
148
+ ThrowStatement,
149
+ TryStatement,
150
+ TupleTypeAnnotation,
151
+ TypeAlias,
152
+ TypeAnnotation,
153
+ TypeCastExpression,
154
+ TypeofTypeAnnotation,
155
+ TypeParameter,
156
+ TypeParameterDeclaration,
157
+ TypeParameterInstantiation,
158
+ UnaryExpression,
159
+ UnionTypeAnnotation,
160
+ UpdateExpression,
161
+ VariableDeclaration,
162
+ VariableDeclarator,
163
+ Variance,
164
+ VoidTypeAnnotation,
165
+ WhileStatement,
166
+ WithStatement,
167
+ YieldExpression,
168
+ Literal,
169
+ } from 'hermes-estree';
170
+ import type {DetachedNode} from '../detachedNode';
171
+
172
+ export type TransformReplaceSignatures = {
173
+ (
174
+ target: AnyTypeAnnotation,
175
+ nodeToReplaceWith: DetachedNode<AnyTypeAnnotation>,
176
+ options?: $ReadOnly<{keepComments?: boolean}>,
177
+ ): void,
178
+ (
179
+ target: ArrayExpression,
180
+ nodeToReplaceWith: DetachedNode<ArrayExpression>,
181
+ options?: $ReadOnly<{keepComments?: boolean}>,
182
+ ): void,
183
+ (
184
+ target: ArrayPattern,
185
+ nodeToReplaceWith: DetachedNode<ArrayPattern>,
186
+ options?: $ReadOnly<{keepComments?: boolean}>,
187
+ ): void,
188
+ (
189
+ target: ArrayTypeAnnotation,
190
+ nodeToReplaceWith: DetachedNode<ArrayTypeAnnotation>,
191
+ options?: $ReadOnly<{keepComments?: boolean}>,
192
+ ): void,
193
+ (
194
+ target: ArrowFunctionExpression,
195
+ nodeToReplaceWith: DetachedNode<ArrowFunctionExpression>,
196
+ options?: $ReadOnly<{keepComments?: boolean}>,
197
+ ): void,
198
+ (
199
+ target: AssignmentExpression,
200
+ nodeToReplaceWith: DetachedNode<AssignmentExpression>,
201
+ options?: $ReadOnly<{keepComments?: boolean}>,
202
+ ): void,
203
+ (
204
+ target: AssignmentPattern,
205
+ nodeToReplaceWith: DetachedNode<AssignmentPattern>,
206
+ options?: $ReadOnly<{keepComments?: boolean}>,
207
+ ): void,
208
+ (
209
+ target: AwaitExpression,
210
+ nodeToReplaceWith: DetachedNode<AwaitExpression>,
211
+ options?: $ReadOnly<{keepComments?: boolean}>,
212
+ ): void,
213
+ (
214
+ target: BinaryExpression,
215
+ nodeToReplaceWith: DetachedNode<BinaryExpression>,
216
+ options?: $ReadOnly<{keepComments?: boolean}>,
217
+ ): void,
218
+ (
219
+ target: BlockStatement,
220
+ nodeToReplaceWith: DetachedNode<BlockStatement>,
221
+ options?: $ReadOnly<{keepComments?: boolean}>,
222
+ ): void,
223
+ (
224
+ target: BooleanLiteralTypeAnnotation,
225
+ nodeToReplaceWith: DetachedNode<BooleanLiteralTypeAnnotation>,
226
+ options?: $ReadOnly<{keepComments?: boolean}>,
227
+ ): void,
228
+ (
229
+ target: BooleanTypeAnnotation,
230
+ nodeToReplaceWith: DetachedNode<BooleanTypeAnnotation>,
231
+ options?: $ReadOnly<{keepComments?: boolean}>,
232
+ ): void,
233
+ (
234
+ target: BreakStatement,
235
+ nodeToReplaceWith: DetachedNode<BreakStatement>,
236
+ options?: $ReadOnly<{keepComments?: boolean}>,
237
+ ): void,
238
+ (
239
+ target: CallExpression,
240
+ nodeToReplaceWith: DetachedNode<CallExpression>,
241
+ options?: $ReadOnly<{keepComments?: boolean}>,
242
+ ): void,
243
+ (
244
+ target: CatchClause,
245
+ nodeToReplaceWith: DetachedNode<CatchClause>,
246
+ options?: $ReadOnly<{keepComments?: boolean}>,
247
+ ): void,
248
+ (
249
+ target: ClassBody,
250
+ nodeToReplaceWith: DetachedNode<ClassBody>,
251
+ options?: $ReadOnly<{keepComments?: boolean}>,
252
+ ): void,
253
+ (
254
+ target: ClassDeclaration,
255
+ nodeToReplaceWith: DetachedNode<ClassDeclaration>,
256
+ options?: $ReadOnly<{keepComments?: boolean}>,
257
+ ): void,
258
+ (
259
+ target: ClassExpression,
260
+ nodeToReplaceWith: DetachedNode<ClassExpression>,
261
+ options?: $ReadOnly<{keepComments?: boolean}>,
262
+ ): void,
263
+ (
264
+ target: ClassImplements,
265
+ nodeToReplaceWith: DetachedNode<ClassImplements>,
266
+ options?: $ReadOnly<{keepComments?: boolean}>,
267
+ ): void,
268
+ (
269
+ target: ClassPrivateProperty,
270
+ nodeToReplaceWith: DetachedNode<ClassPrivateProperty>,
271
+ options?: $ReadOnly<{keepComments?: boolean}>,
272
+ ): void,
273
+ (
274
+ target: ClassProperty,
275
+ nodeToReplaceWith: DetachedNode<ClassProperty>,
276
+ options?: $ReadOnly<{keepComments?: boolean}>,
277
+ ): void,
278
+ (
279
+ target: ConditionalExpression,
280
+ nodeToReplaceWith: DetachedNode<ConditionalExpression>,
281
+ options?: $ReadOnly<{keepComments?: boolean}>,
282
+ ): void,
283
+ (
284
+ target: ContinueStatement,
285
+ nodeToReplaceWith: DetachedNode<ContinueStatement>,
286
+ options?: $ReadOnly<{keepComments?: boolean}>,
287
+ ): void,
288
+ (
289
+ target: DebuggerStatement,
290
+ nodeToReplaceWith: DetachedNode<DebuggerStatement>,
291
+ options?: $ReadOnly<{keepComments?: boolean}>,
292
+ ): void,
293
+ (
294
+ target: DeclareClass,
295
+ nodeToReplaceWith: DetachedNode<DeclareClass>,
296
+ options?: $ReadOnly<{keepComments?: boolean}>,
297
+ ): void,
298
+ (
299
+ target: DeclaredPredicate,
300
+ nodeToReplaceWith: DetachedNode<DeclaredPredicate>,
301
+ options?: $ReadOnly<{keepComments?: boolean}>,
302
+ ): void,
303
+ (
304
+ target: DeclareExportAllDeclaration,
305
+ nodeToReplaceWith: DetachedNode<DeclareExportAllDeclaration>,
306
+ options?: $ReadOnly<{keepComments?: boolean}>,
307
+ ): void,
308
+ (
309
+ target: DeclareExportDeclaration,
310
+ nodeToReplaceWith: DetachedNode<DeclareExportDeclaration>,
311
+ options?: $ReadOnly<{keepComments?: boolean}>,
312
+ ): void,
313
+ (
314
+ target: DeclareFunction,
315
+ nodeToReplaceWith: DetachedNode<DeclareFunction>,
316
+ options?: $ReadOnly<{keepComments?: boolean}>,
317
+ ): void,
318
+ (
319
+ target: DeclareInterface,
320
+ nodeToReplaceWith: DetachedNode<DeclareInterface>,
321
+ options?: $ReadOnly<{keepComments?: boolean}>,
322
+ ): void,
323
+ (
324
+ target: DeclareModule,
325
+ nodeToReplaceWith: DetachedNode<DeclareModule>,
326
+ options?: $ReadOnly<{keepComments?: boolean}>,
327
+ ): void,
328
+ (
329
+ target: DeclareModuleExports,
330
+ nodeToReplaceWith: DetachedNode<DeclareModuleExports>,
331
+ options?: $ReadOnly<{keepComments?: boolean}>,
332
+ ): void,
333
+ (
334
+ target: DeclareOpaqueType,
335
+ nodeToReplaceWith: DetachedNode<DeclareOpaqueType>,
336
+ options?: $ReadOnly<{keepComments?: boolean}>,
337
+ ): void,
338
+ (
339
+ target: DeclareTypeAlias,
340
+ nodeToReplaceWith: DetachedNode<DeclareTypeAlias>,
341
+ options?: $ReadOnly<{keepComments?: boolean}>,
342
+ ): void,
343
+ (
344
+ target: DeclareVariable,
345
+ nodeToReplaceWith: DetachedNode<DeclareVariable>,
346
+ options?: $ReadOnly<{keepComments?: boolean}>,
347
+ ): void,
348
+ (
349
+ target: DoWhileStatement,
350
+ nodeToReplaceWith: DetachedNode<DoWhileStatement>,
351
+ options?: $ReadOnly<{keepComments?: boolean}>,
352
+ ): void,
353
+ (
354
+ target: EmptyStatement,
355
+ nodeToReplaceWith: DetachedNode<EmptyStatement>,
356
+ options?: $ReadOnly<{keepComments?: boolean}>,
357
+ ): void,
358
+ (
359
+ target: EmptyTypeAnnotation,
360
+ nodeToReplaceWith: DetachedNode<EmptyTypeAnnotation>,
361
+ options?: $ReadOnly<{keepComments?: boolean}>,
362
+ ): void,
363
+ (
364
+ target: EnumBooleanBody,
365
+ nodeToReplaceWith: DetachedNode<EnumBooleanBody>,
366
+ options?: $ReadOnly<{keepComments?: boolean}>,
367
+ ): void,
368
+ (
369
+ target: EnumBooleanMember,
370
+ nodeToReplaceWith: DetachedNode<EnumBooleanMember>,
371
+ options?: $ReadOnly<{keepComments?: boolean}>,
372
+ ): void,
373
+ (
374
+ target: EnumDeclaration,
375
+ nodeToReplaceWith: DetachedNode<EnumDeclaration>,
376
+ options?: $ReadOnly<{keepComments?: boolean}>,
377
+ ): void,
378
+ (
379
+ target: EnumDefaultedMember,
380
+ nodeToReplaceWith: DetachedNode<EnumDefaultedMember>,
381
+ options?: $ReadOnly<{keepComments?: boolean}>,
382
+ ): void,
383
+ (
384
+ target: EnumNumberBody,
385
+ nodeToReplaceWith: DetachedNode<EnumNumberBody>,
386
+ options?: $ReadOnly<{keepComments?: boolean}>,
387
+ ): void,
388
+ (
389
+ target: EnumNumberMember,
390
+ nodeToReplaceWith: DetachedNode<EnumNumberMember>,
391
+ options?: $ReadOnly<{keepComments?: boolean}>,
392
+ ): void,
393
+ (
394
+ target: EnumStringBody,
395
+ nodeToReplaceWith: DetachedNode<EnumStringBody>,
396
+ options?: $ReadOnly<{keepComments?: boolean}>,
397
+ ): void,
398
+ (
399
+ target: EnumStringMember,
400
+ nodeToReplaceWith: DetachedNode<EnumStringMember>,
401
+ options?: $ReadOnly<{keepComments?: boolean}>,
402
+ ): void,
403
+ (
404
+ target: EnumSymbolBody,
405
+ nodeToReplaceWith: DetachedNode<EnumSymbolBody>,
406
+ options?: $ReadOnly<{keepComments?: boolean}>,
407
+ ): void,
408
+ (
409
+ target: ExistsTypeAnnotation,
410
+ nodeToReplaceWith: DetachedNode<ExistsTypeAnnotation>,
411
+ options?: $ReadOnly<{keepComments?: boolean}>,
412
+ ): void,
413
+ (
414
+ target: ExportAllDeclaration,
415
+ nodeToReplaceWith: DetachedNode<ExportAllDeclaration>,
416
+ options?: $ReadOnly<{keepComments?: boolean}>,
417
+ ): void,
418
+ (
419
+ target: ExportDefaultDeclaration,
420
+ nodeToReplaceWith: DetachedNode<ExportDefaultDeclaration>,
421
+ options?: $ReadOnly<{keepComments?: boolean}>,
422
+ ): void,
423
+ (
424
+ target: ExportNamedDeclaration,
425
+ nodeToReplaceWith: DetachedNode<ExportNamedDeclaration>,
426
+ options?: $ReadOnly<{keepComments?: boolean}>,
427
+ ): void,
428
+ (
429
+ target: ExportNamespaceSpecifier,
430
+ nodeToReplaceWith: DetachedNode<ExportNamespaceSpecifier>,
431
+ options?: $ReadOnly<{keepComments?: boolean}>,
432
+ ): void,
433
+ (
434
+ target: ExportSpecifier,
435
+ nodeToReplaceWith: DetachedNode<ExportSpecifier>,
436
+ options?: $ReadOnly<{keepComments?: boolean}>,
437
+ ): void,
438
+ (
439
+ target: ExpressionStatement,
440
+ nodeToReplaceWith: DetachedNode<ExpressionStatement>,
441
+ options?: $ReadOnly<{keepComments?: boolean}>,
442
+ ): void,
443
+ (
444
+ target: ForInStatement,
445
+ nodeToReplaceWith: DetachedNode<ForInStatement>,
446
+ options?: $ReadOnly<{keepComments?: boolean}>,
447
+ ): void,
448
+ (
449
+ target: ForOfStatement,
450
+ nodeToReplaceWith: DetachedNode<ForOfStatement>,
451
+ options?: $ReadOnly<{keepComments?: boolean}>,
452
+ ): void,
453
+ (
454
+ target: ForStatement,
455
+ nodeToReplaceWith: DetachedNode<ForStatement>,
456
+ options?: $ReadOnly<{keepComments?: boolean}>,
457
+ ): void,
458
+ (
459
+ target: FunctionDeclaration,
460
+ nodeToReplaceWith: DetachedNode<FunctionDeclaration>,
461
+ options?: $ReadOnly<{keepComments?: boolean}>,
462
+ ): void,
463
+ (
464
+ target: FunctionExpression,
465
+ nodeToReplaceWith: DetachedNode<FunctionExpression>,
466
+ options?: $ReadOnly<{keepComments?: boolean}>,
467
+ ): void,
468
+ (
469
+ target: FunctionTypeAnnotation,
470
+ nodeToReplaceWith: DetachedNode<FunctionTypeAnnotation>,
471
+ options?: $ReadOnly<{keepComments?: boolean}>,
472
+ ): void,
473
+ (
474
+ target: FunctionTypeParam,
475
+ nodeToReplaceWith: DetachedNode<FunctionTypeParam>,
476
+ options?: $ReadOnly<{keepComments?: boolean}>,
477
+ ): void,
478
+ (
479
+ target: GenericTypeAnnotation,
480
+ nodeToReplaceWith: DetachedNode<GenericTypeAnnotation>,
481
+ options?: $ReadOnly<{keepComments?: boolean}>,
482
+ ): void,
483
+ (
484
+ target: Identifier,
485
+ nodeToReplaceWith: DetachedNode<Identifier>,
486
+ options?: $ReadOnly<{keepComments?: boolean}>,
487
+ ): void,
488
+ (
489
+ target: IfStatement,
490
+ nodeToReplaceWith: DetachedNode<IfStatement>,
491
+ options?: $ReadOnly<{keepComments?: boolean}>,
492
+ ): void,
493
+ (
494
+ target: ImportAttribute,
495
+ nodeToReplaceWith: DetachedNode<ImportAttribute>,
496
+ options?: $ReadOnly<{keepComments?: boolean}>,
497
+ ): void,
498
+ (
499
+ target: ImportDeclaration,
500
+ nodeToReplaceWith: DetachedNode<ImportDeclaration>,
501
+ options?: $ReadOnly<{keepComments?: boolean}>,
502
+ ): void,
503
+ (
504
+ target: ImportDefaultSpecifier,
505
+ nodeToReplaceWith: DetachedNode<ImportDefaultSpecifier>,
506
+ options?: $ReadOnly<{keepComments?: boolean}>,
507
+ ): void,
508
+ (
509
+ target: ImportExpression,
510
+ nodeToReplaceWith: DetachedNode<ImportExpression>,
511
+ options?: $ReadOnly<{keepComments?: boolean}>,
512
+ ): void,
513
+ (
514
+ target: ImportNamespaceSpecifier,
515
+ nodeToReplaceWith: DetachedNode<ImportNamespaceSpecifier>,
516
+ options?: $ReadOnly<{keepComments?: boolean}>,
517
+ ): void,
518
+ (
519
+ target: ImportSpecifier,
520
+ nodeToReplaceWith: DetachedNode<ImportSpecifier>,
521
+ options?: $ReadOnly<{keepComments?: boolean}>,
522
+ ): void,
523
+ (
524
+ target: IndexedAccessType,
525
+ nodeToReplaceWith: DetachedNode<IndexedAccessType>,
526
+ options?: $ReadOnly<{keepComments?: boolean}>,
527
+ ): void,
528
+ (
529
+ target: InferredPredicate,
530
+ nodeToReplaceWith: DetachedNode<InferredPredicate>,
531
+ options?: $ReadOnly<{keepComments?: boolean}>,
532
+ ): void,
533
+ (
534
+ target: InterfaceDeclaration,
535
+ nodeToReplaceWith: DetachedNode<InterfaceDeclaration>,
536
+ options?: $ReadOnly<{keepComments?: boolean}>,
537
+ ): void,
538
+ (
539
+ target: InterfaceExtends,
540
+ nodeToReplaceWith: DetachedNode<InterfaceExtends>,
541
+ options?: $ReadOnly<{keepComments?: boolean}>,
542
+ ): void,
543
+ (
544
+ target: InterfaceTypeAnnotation,
545
+ nodeToReplaceWith: DetachedNode<InterfaceTypeAnnotation>,
546
+ options?: $ReadOnly<{keepComments?: boolean}>,
547
+ ): void,
548
+ (
549
+ target: IntersectionTypeAnnotation,
550
+ nodeToReplaceWith: DetachedNode<IntersectionTypeAnnotation>,
551
+ options?: $ReadOnly<{keepComments?: boolean}>,
552
+ ): void,
553
+ (
554
+ target: JSXAttribute,
555
+ nodeToReplaceWith: DetachedNode<JSXAttribute>,
556
+ options?: $ReadOnly<{keepComments?: boolean}>,
557
+ ): void,
558
+ (
559
+ target: JSXClosingElement,
560
+ nodeToReplaceWith: DetachedNode<JSXClosingElement>,
561
+ options?: $ReadOnly<{keepComments?: boolean}>,
562
+ ): void,
563
+ (
564
+ target: JSXClosingFragment,
565
+ nodeToReplaceWith: DetachedNode<JSXClosingFragment>,
566
+ options?: $ReadOnly<{keepComments?: boolean}>,
567
+ ): void,
568
+ (
569
+ target: JSXElement,
570
+ nodeToReplaceWith: DetachedNode<JSXElement>,
571
+ options?: $ReadOnly<{keepComments?: boolean}>,
572
+ ): void,
573
+ (
574
+ target: JSXEmptyExpression,
575
+ nodeToReplaceWith: DetachedNode<JSXEmptyExpression>,
576
+ options?: $ReadOnly<{keepComments?: boolean}>,
577
+ ): void,
578
+ (
579
+ target: JSXExpressionContainer,
580
+ nodeToReplaceWith: DetachedNode<JSXExpressionContainer>,
581
+ options?: $ReadOnly<{keepComments?: boolean}>,
582
+ ): void,
583
+ (
584
+ target: JSXFragment,
585
+ nodeToReplaceWith: DetachedNode<JSXFragment>,
586
+ options?: $ReadOnly<{keepComments?: boolean}>,
587
+ ): void,
588
+ (
589
+ target: JSXIdentifier,
590
+ nodeToReplaceWith: DetachedNode<JSXIdentifier>,
591
+ options?: $ReadOnly<{keepComments?: boolean}>,
592
+ ): void,
593
+ (
594
+ target: JSXMemberExpression,
595
+ nodeToReplaceWith: DetachedNode<JSXMemberExpression>,
596
+ options?: $ReadOnly<{keepComments?: boolean}>,
597
+ ): void,
598
+ (
599
+ target: JSXNamespacedName,
600
+ nodeToReplaceWith: DetachedNode<JSXNamespacedName>,
601
+ options?: $ReadOnly<{keepComments?: boolean}>,
602
+ ): void,
603
+ (
604
+ target: JSXOpeningElement,
605
+ nodeToReplaceWith: DetachedNode<JSXOpeningElement>,
606
+ options?: $ReadOnly<{keepComments?: boolean}>,
607
+ ): void,
608
+ (
609
+ target: JSXOpeningFragment,
610
+ nodeToReplaceWith: DetachedNode<JSXOpeningFragment>,
611
+ options?: $ReadOnly<{keepComments?: boolean}>,
612
+ ): void,
613
+ (
614
+ target: JSXSpreadAttribute,
615
+ nodeToReplaceWith: DetachedNode<JSXSpreadAttribute>,
616
+ options?: $ReadOnly<{keepComments?: boolean}>,
617
+ ): void,
618
+ (
619
+ target: JSXSpreadChild,
620
+ nodeToReplaceWith: DetachedNode<JSXSpreadChild>,
621
+ options?: $ReadOnly<{keepComments?: boolean}>,
622
+ ): void,
623
+ (
624
+ target: JSXText,
625
+ nodeToReplaceWith: DetachedNode<JSXText>,
626
+ options?: $ReadOnly<{keepComments?: boolean}>,
627
+ ): void,
628
+ (
629
+ target: LabeledStatement,
630
+ nodeToReplaceWith: DetachedNode<LabeledStatement>,
631
+ options?: $ReadOnly<{keepComments?: boolean}>,
632
+ ): void,
633
+ (
634
+ target: LogicalExpression,
635
+ nodeToReplaceWith: DetachedNode<LogicalExpression>,
636
+ options?: $ReadOnly<{keepComments?: boolean}>,
637
+ ): void,
638
+ (
639
+ target: MemberExpression,
640
+ nodeToReplaceWith: DetachedNode<MemberExpression>,
641
+ options?: $ReadOnly<{keepComments?: boolean}>,
642
+ ): void,
643
+ (
644
+ target: MetaProperty,
645
+ nodeToReplaceWith: DetachedNode<MetaProperty>,
646
+ options?: $ReadOnly<{keepComments?: boolean}>,
647
+ ): void,
648
+ (
649
+ target: MethodDefinition,
650
+ nodeToReplaceWith: DetachedNode<MethodDefinition>,
651
+ options?: $ReadOnly<{keepComments?: boolean}>,
652
+ ): void,
653
+ (
654
+ target: MixedTypeAnnotation,
655
+ nodeToReplaceWith: DetachedNode<MixedTypeAnnotation>,
656
+ options?: $ReadOnly<{keepComments?: boolean}>,
657
+ ): void,
658
+ (
659
+ target: NewExpression,
660
+ nodeToReplaceWith: DetachedNode<NewExpression>,
661
+ options?: $ReadOnly<{keepComments?: boolean}>,
662
+ ): void,
663
+ (
664
+ target: NullableTypeAnnotation,
665
+ nodeToReplaceWith: DetachedNode<NullableTypeAnnotation>,
666
+ options?: $ReadOnly<{keepComments?: boolean}>,
667
+ ): void,
668
+ (
669
+ target: NullLiteralTypeAnnotation,
670
+ nodeToReplaceWith: DetachedNode<NullLiteralTypeAnnotation>,
671
+ options?: $ReadOnly<{keepComments?: boolean}>,
672
+ ): void,
673
+ (
674
+ target: NumberLiteralTypeAnnotation,
675
+ nodeToReplaceWith: DetachedNode<NumberLiteralTypeAnnotation>,
676
+ options?: $ReadOnly<{keepComments?: boolean}>,
677
+ ): void,
678
+ (
679
+ target: NumberTypeAnnotation,
680
+ nodeToReplaceWith: DetachedNode<NumberTypeAnnotation>,
681
+ options?: $ReadOnly<{keepComments?: boolean}>,
682
+ ): void,
683
+ (
684
+ target: ObjectExpression,
685
+ nodeToReplaceWith: DetachedNode<ObjectExpression>,
686
+ options?: $ReadOnly<{keepComments?: boolean}>,
687
+ ): void,
688
+ (
689
+ target: ObjectPattern,
690
+ nodeToReplaceWith: DetachedNode<ObjectPattern>,
691
+ options?: $ReadOnly<{keepComments?: boolean}>,
692
+ ): void,
693
+ (
694
+ target: ObjectTypeAnnotation,
695
+ nodeToReplaceWith: DetachedNode<ObjectTypeAnnotation>,
696
+ options?: $ReadOnly<{keepComments?: boolean}>,
697
+ ): void,
698
+ (
699
+ target: ObjectTypeCallProperty,
700
+ nodeToReplaceWith: DetachedNode<ObjectTypeCallProperty>,
701
+ options?: $ReadOnly<{keepComments?: boolean}>,
702
+ ): void,
703
+ (
704
+ target: ObjectTypeIndexer,
705
+ nodeToReplaceWith: DetachedNode<ObjectTypeIndexer>,
706
+ options?: $ReadOnly<{keepComments?: boolean}>,
707
+ ): void,
708
+ (
709
+ target: ObjectTypeInternalSlot,
710
+ nodeToReplaceWith: DetachedNode<ObjectTypeInternalSlot>,
711
+ options?: $ReadOnly<{keepComments?: boolean}>,
712
+ ): void,
713
+ (
714
+ target: ObjectTypeProperty,
715
+ nodeToReplaceWith: DetachedNode<ObjectTypeProperty>,
716
+ options?: $ReadOnly<{keepComments?: boolean}>,
717
+ ): void,
718
+ (
719
+ target: ObjectTypeSpreadProperty,
720
+ nodeToReplaceWith: DetachedNode<ObjectTypeSpreadProperty>,
721
+ options?: $ReadOnly<{keepComments?: boolean}>,
722
+ ): void,
723
+ (
724
+ target: OpaqueType,
725
+ nodeToReplaceWith: DetachedNode<OpaqueType>,
726
+ options?: $ReadOnly<{keepComments?: boolean}>,
727
+ ): void,
728
+ (
729
+ target: OptionalCallExpression,
730
+ nodeToReplaceWith: DetachedNode<OptionalCallExpression>,
731
+ options?: $ReadOnly<{keepComments?: boolean}>,
732
+ ): void,
733
+ (
734
+ target: OptionalIndexedAccessType,
735
+ nodeToReplaceWith: DetachedNode<OptionalIndexedAccessType>,
736
+ options?: $ReadOnly<{keepComments?: boolean}>,
737
+ ): void,
738
+ (
739
+ target: OptionalMemberExpression,
740
+ nodeToReplaceWith: DetachedNode<OptionalMemberExpression>,
741
+ options?: $ReadOnly<{keepComments?: boolean}>,
742
+ ): void,
743
+ (
744
+ target: PrivateName,
745
+ nodeToReplaceWith: DetachedNode<PrivateName>,
746
+ options?: $ReadOnly<{keepComments?: boolean}>,
747
+ ): void,
748
+ (
749
+ target: Program,
750
+ nodeToReplaceWith: DetachedNode<Program>,
751
+ options?: $ReadOnly<{keepComments?: boolean}>,
752
+ ): void,
753
+ (
754
+ target: Property,
755
+ nodeToReplaceWith: DetachedNode<Property>,
756
+ options?: $ReadOnly<{keepComments?: boolean}>,
757
+ ): void,
758
+ (
759
+ target: QualifiedTypeIdentifier,
760
+ nodeToReplaceWith: DetachedNode<QualifiedTypeIdentifier>,
761
+ options?: $ReadOnly<{keepComments?: boolean}>,
762
+ ): void,
763
+ (
764
+ target: RestElement,
765
+ nodeToReplaceWith: DetachedNode<RestElement>,
766
+ options?: $ReadOnly<{keepComments?: boolean}>,
767
+ ): void,
768
+ (
769
+ target: ReturnStatement,
770
+ nodeToReplaceWith: DetachedNode<ReturnStatement>,
771
+ options?: $ReadOnly<{keepComments?: boolean}>,
772
+ ): void,
773
+ (
774
+ target: SequenceExpression,
775
+ nodeToReplaceWith: DetachedNode<SequenceExpression>,
776
+ options?: $ReadOnly<{keepComments?: boolean}>,
777
+ ): void,
778
+ (
779
+ target: SpreadElement,
780
+ nodeToReplaceWith: DetachedNode<SpreadElement>,
781
+ options?: $ReadOnly<{keepComments?: boolean}>,
782
+ ): void,
783
+ (
784
+ target: StringLiteralTypeAnnotation,
785
+ nodeToReplaceWith: DetachedNode<StringLiteralTypeAnnotation>,
786
+ options?: $ReadOnly<{keepComments?: boolean}>,
787
+ ): void,
788
+ (
789
+ target: StringTypeAnnotation,
790
+ nodeToReplaceWith: DetachedNode<StringTypeAnnotation>,
791
+ options?: $ReadOnly<{keepComments?: boolean}>,
792
+ ): void,
793
+ (
794
+ target: Super,
795
+ nodeToReplaceWith: DetachedNode<Super>,
796
+ options?: $ReadOnly<{keepComments?: boolean}>,
797
+ ): void,
798
+ (
799
+ target: SwitchCase,
800
+ nodeToReplaceWith: DetachedNode<SwitchCase>,
801
+ options?: $ReadOnly<{keepComments?: boolean}>,
802
+ ): void,
803
+ (
804
+ target: SwitchStatement,
805
+ nodeToReplaceWith: DetachedNode<SwitchStatement>,
806
+ options?: $ReadOnly<{keepComments?: boolean}>,
807
+ ): void,
808
+ (
809
+ target: SymbolTypeAnnotation,
810
+ nodeToReplaceWith: DetachedNode<SymbolTypeAnnotation>,
811
+ options?: $ReadOnly<{keepComments?: boolean}>,
812
+ ): void,
813
+ (
814
+ target: TaggedTemplateExpression,
815
+ nodeToReplaceWith: DetachedNode<TaggedTemplateExpression>,
816
+ options?: $ReadOnly<{keepComments?: boolean}>,
817
+ ): void,
818
+ (
819
+ target: TemplateElement,
820
+ nodeToReplaceWith: DetachedNode<TemplateElement>,
821
+ options?: $ReadOnly<{keepComments?: boolean}>,
822
+ ): void,
823
+ (
824
+ target: TemplateLiteral,
825
+ nodeToReplaceWith: DetachedNode<TemplateLiteral>,
826
+ options?: $ReadOnly<{keepComments?: boolean}>,
827
+ ): void,
828
+ (
829
+ target: ThisExpression,
830
+ nodeToReplaceWith: DetachedNode<ThisExpression>,
831
+ options?: $ReadOnly<{keepComments?: boolean}>,
832
+ ): void,
833
+ (
834
+ target: ThisTypeAnnotation,
835
+ nodeToReplaceWith: DetachedNode<ThisTypeAnnotation>,
836
+ options?: $ReadOnly<{keepComments?: boolean}>,
837
+ ): void,
838
+ (
839
+ target: ThrowStatement,
840
+ nodeToReplaceWith: DetachedNode<ThrowStatement>,
841
+ options?: $ReadOnly<{keepComments?: boolean}>,
842
+ ): void,
843
+ (
844
+ target: TryStatement,
845
+ nodeToReplaceWith: DetachedNode<TryStatement>,
846
+ options?: $ReadOnly<{keepComments?: boolean}>,
847
+ ): void,
848
+ (
849
+ target: TupleTypeAnnotation,
850
+ nodeToReplaceWith: DetachedNode<TupleTypeAnnotation>,
851
+ options?: $ReadOnly<{keepComments?: boolean}>,
852
+ ): void,
853
+ (
854
+ target: TypeAlias,
855
+ nodeToReplaceWith: DetachedNode<TypeAlias>,
856
+ options?: $ReadOnly<{keepComments?: boolean}>,
857
+ ): void,
858
+ (
859
+ target: TypeAnnotation,
860
+ nodeToReplaceWith: DetachedNode<TypeAnnotation>,
861
+ options?: $ReadOnly<{keepComments?: boolean}>,
862
+ ): void,
863
+ (
864
+ target: TypeCastExpression,
865
+ nodeToReplaceWith: DetachedNode<TypeCastExpression>,
866
+ options?: $ReadOnly<{keepComments?: boolean}>,
867
+ ): void,
868
+ (
869
+ target: TypeofTypeAnnotation,
870
+ nodeToReplaceWith: DetachedNode<TypeofTypeAnnotation>,
871
+ options?: $ReadOnly<{keepComments?: boolean}>,
872
+ ): void,
873
+ (
874
+ target: TypeParameter,
875
+ nodeToReplaceWith: DetachedNode<TypeParameter>,
876
+ options?: $ReadOnly<{keepComments?: boolean}>,
877
+ ): void,
878
+ (
879
+ target: TypeParameterDeclaration,
880
+ nodeToReplaceWith: DetachedNode<TypeParameterDeclaration>,
881
+ options?: $ReadOnly<{keepComments?: boolean}>,
882
+ ): void,
883
+ (
884
+ target: TypeParameterInstantiation,
885
+ nodeToReplaceWith: DetachedNode<TypeParameterInstantiation>,
886
+ options?: $ReadOnly<{keepComments?: boolean}>,
887
+ ): void,
888
+ (
889
+ target: UnaryExpression,
890
+ nodeToReplaceWith: DetachedNode<UnaryExpression>,
891
+ options?: $ReadOnly<{keepComments?: boolean}>,
892
+ ): void,
893
+ (
894
+ target: UnionTypeAnnotation,
895
+ nodeToReplaceWith: DetachedNode<UnionTypeAnnotation>,
896
+ options?: $ReadOnly<{keepComments?: boolean}>,
897
+ ): void,
898
+ (
899
+ target: UpdateExpression,
900
+ nodeToReplaceWith: DetachedNode<UpdateExpression>,
901
+ options?: $ReadOnly<{keepComments?: boolean}>,
902
+ ): void,
903
+ (
904
+ target: VariableDeclaration,
905
+ nodeToReplaceWith: DetachedNode<VariableDeclaration>,
906
+ options?: $ReadOnly<{keepComments?: boolean}>,
907
+ ): void,
908
+ (
909
+ target: VariableDeclarator,
910
+ nodeToReplaceWith: DetachedNode<VariableDeclarator>,
911
+ options?: $ReadOnly<{keepComments?: boolean}>,
912
+ ): void,
913
+ (
914
+ target: Variance,
915
+ nodeToReplaceWith: DetachedNode<Variance>,
916
+ options?: $ReadOnly<{keepComments?: boolean}>,
917
+ ): void,
918
+ (
919
+ target: VoidTypeAnnotation,
920
+ nodeToReplaceWith: DetachedNode<VoidTypeAnnotation>,
921
+ options?: $ReadOnly<{keepComments?: boolean}>,
922
+ ): void,
923
+ (
924
+ target: WhileStatement,
925
+ nodeToReplaceWith: DetachedNode<WhileStatement>,
926
+ options?: $ReadOnly<{keepComments?: boolean}>,
927
+ ): void,
928
+ (
929
+ target: WithStatement,
930
+ nodeToReplaceWith: DetachedNode<WithStatement>,
931
+ options?: $ReadOnly<{keepComments?: boolean}>,
932
+ ): void,
933
+ (
934
+ target: YieldExpression,
935
+ nodeToReplaceWith: DetachedNode<YieldExpression>,
936
+ options?: $ReadOnly<{keepComments?: boolean}>,
937
+ ): void,
938
+ (
939
+ target: Literal,
940
+ nodeToReplaceWith: DetachedNode<Literal>,
941
+ options?: $ReadOnly<{keepComments?: boolean}>,
942
+ ): void,
943
+ };