flow-parser 0.319.0 → 0.321.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 (105) hide show
  1. package/README.md +14 -26
  2. package/{oxidized → dist}/FlowParserNodeDeserializers.js +26 -12
  3. package/dist/FlowParserWASM.js +1 -0
  4. package/{oxidized → dist}/babel/TransformESTreeToBabel.js +11 -3
  5. package/{oxidized → dist}/babel/TransformESTreeToBabel.js.flow +12 -4
  6. package/{oxidized/oxidized-src → dist}/estree/StripFlowTypesForBabel.js +33 -18
  7. package/{oxidized → dist}/estree/StripFlowTypesForBabel.js.flow +40 -18
  8. package/{oxidized/oxidized-src → dist}/estree/TransformComponentSyntax.js +25 -12
  9. package/{oxidized → dist}/estree/TransformComponentSyntax.js.flow +29 -11
  10. package/{oxidized → dist}/generated/ESTreeVisitorKeys.js +1 -1
  11. package/package.json +6 -7
  12. package/flow_parser.js +0 -14575
  13. package/oxidized/FlowParserWASM.js +0 -1
  14. package/oxidized/estree/StripFlowTypesForBabel.js +0 -176
  15. package/oxidized/estree/TransformComponentSyntax.js +0 -751
  16. package/oxidized/oxidized-src/FlowParser.js +0 -249
  17. package/oxidized/oxidized-src/FlowParserDeserializer.js +0 -209
  18. package/oxidized/oxidized-src/FlowParserNodeDeserializers.js +0 -1767
  19. package/oxidized/oxidized-src/HermesParserDecodeUTF8String.js +0 -45
  20. package/oxidized/oxidized-src/ParserOptions.js +0 -8
  21. package/oxidized/oxidized-src/babel/TransformESTreeToBabel.js +0 -1055
  22. package/oxidized/oxidized-src/estree/StripFlowTypes.js +0 -158
  23. package/oxidized/oxidized-src/estree/TransformEnumSyntax.js +0 -92
  24. package/oxidized/oxidized-src/estree/TransformMatchSyntax.js +0 -990
  25. package/oxidized/oxidized-src/estree/TransformRecordSyntax.js +0 -283
  26. package/oxidized/oxidized-src/generated/ESTreeVisitorKeys.js +0 -234
  27. package/oxidized/oxidized-src/getModuleDocblock.js +0 -87
  28. package/oxidized/oxidized-src/index.js +0 -220
  29. package/oxidized/transform/SimpleTransform.js +0 -95
  30. package/oxidized/transform/astArrayMutationHelpers.js +0 -52
  31. package/oxidized/transform/astNodeMutationHelpers.js +0 -142
  32. package/oxidized/transform/print/comments/comments.js +0 -245
  33. package/oxidized/transform/print/comments/prettier/common/util.js +0 -235
  34. package/oxidized/transform/print/comments/prettier/language-js/comments.js +0 -663
  35. package/oxidized/transform/print/comments/prettier/language-js/loc.js +0 -30
  36. package/oxidized/transform/print/comments/prettier/language-js/printer-estree.js +0 -23
  37. package/oxidized/transform/print/comments/prettier/language-js/utils.js +0 -89
  38. package/oxidized/transform/print/comments/prettier/main/comments.js +0 -374
  39. package/oxidized/transform/print/comments/prettier/utils/get-last.js +0 -5
  40. package/oxidized/transform/print/detachedNodeTypes.js +0 -1
  41. package/oxidized/transform/print/print.js +0 -68
  42. package/oxidized/traverse/SimpleTraverser.js +0 -90
  43. package/oxidized/traverse/getVisitorKeys.js +0 -29
  44. package/oxidized/utils/Builders.js +0 -181
  45. package/oxidized/utils/GenID.js +0 -37
  46. package/oxidized/utils/createSyntaxError.js +0 -15
  47. package/oxidized/utils/isReservedWord.js +0 -53
  48. package/oxidized/utils/mutateESTreeASTForPrettier.js +0 -85
  49. /package/{oxidized → dist}/FlowParser.js +0 -0
  50. /package/{oxidized → dist}/FlowParser.js.flow +0 -0
  51. /package/{oxidized → dist}/FlowParserDeserializer.js +0 -0
  52. /package/{oxidized → dist}/FlowParserDeserializer.js.flow +0 -0
  53. /package/{oxidized → dist}/FlowParserNodeDeserializers.js.flow +0 -0
  54. /package/{oxidized → dist}/FlowParserWASM.js.flow +0 -0
  55. /package/{oxidized → dist}/HermesAST.js.flow +0 -0
  56. /package/{oxidized → dist}/HermesParserDecodeUTF8String.js +0 -0
  57. /package/{oxidized → dist}/HermesParserDecodeUTF8String.js.flow +0 -0
  58. /package/{oxidized → dist}/ParserOptions.js +0 -0
  59. /package/{oxidized → dist}/ParserOptions.js.flow +0 -0
  60. /package/{oxidized → dist}/estree/StripFlowTypes.js +0 -0
  61. /package/{oxidized → dist}/estree/StripFlowTypes.js.flow +0 -0
  62. /package/{oxidized → dist}/estree/TransformEnumSyntax.js +0 -0
  63. /package/{oxidized → dist}/estree/TransformEnumSyntax.js.flow +0 -0
  64. /package/{oxidized → dist}/estree/TransformMatchSyntax.js +0 -0
  65. /package/{oxidized → dist}/estree/TransformMatchSyntax.js.flow +0 -0
  66. /package/{oxidized → dist}/estree/TransformRecordSyntax.js +0 -0
  67. /package/{oxidized → dist}/estree/TransformRecordSyntax.js.flow +0 -0
  68. /package/{oxidized → dist}/generated/ESTreeVisitorKeys.js.flow +0 -0
  69. /package/{oxidized → dist}/getModuleDocblock.js +0 -0
  70. /package/{oxidized → dist}/getModuleDocblock.js.flow +0 -0
  71. /package/{oxidized → dist}/index.js +0 -0
  72. /package/{oxidized → dist}/index.js.flow +0 -0
  73. /package/{oxidized/oxidized-src → dist}/transform/SimpleTransform.js +0 -0
  74. /package/{oxidized → dist}/transform/SimpleTransform.js.flow +0 -0
  75. /package/{oxidized/oxidized-src → dist}/transform/astArrayMutationHelpers.js +0 -0
  76. /package/{oxidized → dist}/transform/astArrayMutationHelpers.js.flow +0 -0
  77. /package/{oxidized/oxidized-src → dist}/transform/astNodeMutationHelpers.js +0 -0
  78. /package/{oxidized → dist}/transform/astNodeMutationHelpers.js.flow +0 -0
  79. /package/{oxidized/oxidized-src → dist}/transform/print/comments/comments.js +0 -0
  80. /package/{oxidized → dist}/transform/print/comments/comments.js.flow +0 -0
  81. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/common/util.js +0 -0
  82. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/comments.js +0 -0
  83. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/loc.js +0 -0
  84. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/printer-estree.js +0 -0
  85. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/utils.js +0 -0
  86. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/main/comments.js +0 -0
  87. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/utils/get-last.js +0 -0
  88. /package/{oxidized/oxidized-src → dist}/transform/print/detachedNodeTypes.js +0 -0
  89. /package/{oxidized → dist}/transform/print/detachedNodeTypes.js.flow +0 -0
  90. /package/{oxidized/oxidized-src → dist}/transform/print/print.js +0 -0
  91. /package/{oxidized → dist}/transform/print/print.js.flow +0 -0
  92. /package/{oxidized/oxidized-src → dist}/traverse/SimpleTraverser.js +0 -0
  93. /package/{oxidized → dist}/traverse/SimpleTraverser.js.flow +0 -0
  94. /package/{oxidized/oxidized-src → dist}/traverse/getVisitorKeys.js +0 -0
  95. /package/{oxidized → dist}/traverse/getVisitorKeys.js.flow +0 -0
  96. /package/{oxidized/oxidized-src → dist}/utils/Builders.js +0 -0
  97. /package/{oxidized → dist}/utils/Builders.js.flow +0 -0
  98. /package/{oxidized/oxidized-src → dist}/utils/GenID.js +0 -0
  99. /package/{oxidized → dist}/utils/GenID.js.flow +0 -0
  100. /package/{oxidized/oxidized-src → dist}/utils/createSyntaxError.js +0 -0
  101. /package/{oxidized → dist}/utils/createSyntaxError.js.flow +0 -0
  102. /package/{oxidized/oxidized-src → dist}/utils/isReservedWord.js +0 -0
  103. /package/{oxidized → dist}/utils/isReservedWord.js.flow +0 -0
  104. /package/{oxidized/oxidized-src → dist}/utils/mutateESTreeASTForPrettier.js +0 -0
  105. /package/{oxidized → dist}/utils/mutateESTreeASTForPrettier.js.flow +0 -0
@@ -1,1055 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.transformProgram = transformProgram;
7
-
8
- var _SimpleTransform = require("../transform/SimpleTransform");
9
-
10
- var _SimpleTraverser = require("../traverse/SimpleTraverser");
11
-
12
- var _ESTreeVisitorKeys = _interopRequireDefault(require("../generated/ESTreeVisitorKeys"));
13
-
14
- var _createSyntaxError = require("../utils/createSyntaxError");
15
-
16
- function _interopRequireDefault(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
-
22
- const EMPTY_PARENT = null;
23
- const FlowESTreeAndBabelVisitorKeys = { ..._ESTreeVisitorKeys.default,
24
- BigIntLiteral: [],
25
- BlockStatement: ['directives', ..._ESTreeVisitorKeys.default.BlockStatement],
26
- BooleanLiteral: [],
27
- ClassExpression: ['superTypeParameters', ..._ESTreeVisitorKeys.default.ClassExpression],
28
- ClassDeclaration: ['superTypeParameters', ..._ESTreeVisitorKeys.default.ClassDeclaration],
29
- ClassMethod: ['key', 'params', 'body', 'returnType', 'typeParameters'],
30
- ClassPrivateMethod: ['key', 'params', 'body', 'returnType', 'typeParameters'],
31
- ClassProperty: ['key', 'value', 'typeAnnotation', 'variance'],
32
- ClassPrivateProperty: ['key', 'value', 'typeAnnotation', 'variance'],
33
- Directive: ['value'],
34
- DirectiveLiteral: [],
35
- ExportNamespaceSpecifier: ['exported'],
36
- File: ['program', 'comments'],
37
- Import: [],
38
- NullLiteral: [],
39
- NumericLiteral: [],
40
- ObjectMethod: [..._ESTreeVisitorKeys.default.Property, 'params', 'body', 'returnType', 'typeParameters'],
41
- ObjectProperty: _ESTreeVisitorKeys.default.Property,
42
- OptionalCallExpression: ['callee', 'arguments', 'typeArguments'],
43
- OptionalMemberExpression: ['object', 'property'],
44
- PrivateName: ['id'],
45
- Program: ['directives', ..._ESTreeVisitorKeys.default.Program],
46
- RegExpLiteral: [],
47
- RestElement: [..._ESTreeVisitorKeys.default.RestElement, 'typeAnnotation'],
48
- StringLiteral: [],
49
- TupleTypeAnnotation: ['types'],
50
- CommentBlock: [],
51
- CommentLine: []
52
- };
53
-
54
- function nodeWith(node, overrideProps) {
55
- return _SimpleTransform.SimpleTransform.nodeWith(node, overrideProps, FlowESTreeAndBabelVisitorKeys);
56
- }
57
-
58
- function fixSourceLocation(node, _options) {
59
- const loc = node.loc;
60
-
61
- if (loc == null) {
62
- return;
63
- }
64
-
65
- node.loc = {
66
- start: loc.start,
67
- end: loc.end
68
- };
69
-
70
- if (node.type === 'Identifier') {
71
- node.loc.identifierName = node.name;
72
- }
73
-
74
- node.start = node.range[0];
75
- node.end = node.range[1];
76
- delete node.range;
77
- delete node.parent;
78
- }
79
-
80
- function mapNodeWithDirectives(node) {
81
- if (node.directives != null) {
82
- return node;
83
- }
84
-
85
- const directives = [];
86
-
87
- for (const child of node.body) {
88
- if (child.type === 'ExpressionStatement' && child.directive != null) {
89
- directives.push({
90
- type: 'Directive',
91
- value: {
92
- type: 'DirectiveLiteral',
93
- value: child.directive,
94
- extra: {
95
- rawValue: child.directive,
96
- raw: child.expression.type === 'Literal' ? child.expression.raw : ''
97
- },
98
- loc: child.expression.loc,
99
- range: child.expression.range,
100
- parent: EMPTY_PARENT
101
- },
102
- loc: child.loc,
103
- range: child.range,
104
- parent: node
105
- });
106
- } else {
107
- break;
108
- }
109
- }
110
-
111
- return nodeWith(node, {
112
- directives,
113
- body: directives.length === 0 ? node.body : node.body.slice(directives.length)
114
- });
115
- }
116
-
117
- function mapProgram(node) {
118
- var _program$directives;
119
-
120
- const program = mapNodeWithDirectives(node);
121
- const startLoc = {
122
- line: 1,
123
- column: 0
124
- };
125
- let endLoc = program.loc.end;
126
- let endRange = program.range[1];
127
-
128
- if (program.comments.length > 0) {
129
- const lastComment = program.comments[program.comments.length - 1];
130
-
131
- if (lastComment.range[1] > endRange) {
132
- endLoc = lastComment.loc.end;
133
- endRange = lastComment.range[1];
134
- }
135
- }
136
-
137
- const loc = {
138
- start: startLoc,
139
- end: endLoc
140
- };
141
- const range = [0, endRange];
142
- const babelComments = program.comments.map(comment => {
143
- switch (comment.type) {
144
- case 'Line':
145
- {
146
- return {
147
- type: 'CommentLine',
148
- value: comment.value,
149
- loc: comment.loc,
150
- range: comment.range
151
- };
152
- }
153
-
154
- case 'Block':
155
- {
156
- return {
157
- type: 'CommentBlock',
158
- value: comment.value,
159
- loc: comment.loc,
160
- range: comment.range
161
- };
162
- }
163
- }
164
- });
165
- return {
166
- type: 'File',
167
- program: {
168
- type: 'Program',
169
- body: program.body,
170
- directives: (_program$directives = program.directives) != null ? _program$directives : [],
171
- sourceType: program.sourceType,
172
- interpreter: program.interpreter,
173
- loc,
174
- range,
175
- parent: EMPTY_PARENT
176
- },
177
- comments: babelComments,
178
- loc,
179
- range,
180
- parent: EMPTY_PARENT
181
- };
182
- }
183
-
184
- function mapTemplateElement(node) {
185
- const startCharsToExclude = 1;
186
- const endCharsToExclude = node.tail ? 1 : 2;
187
- node.loc = {
188
- start: {
189
- line: node.loc.start.line,
190
- column: node.loc.start.column + startCharsToExclude
191
- },
192
- end: {
193
- line: node.loc.end.line,
194
- column: node.loc.end.column - endCharsToExclude
195
- }
196
- };
197
- node.range = [node.range[0] + startCharsToExclude, node.range[1] - endCharsToExclude];
198
- return node;
199
- }
200
-
201
- function mapProperty(node) {
202
- const key = node.key;
203
- const value = node.value;
204
-
205
- if (node.method || node.kind !== 'init') {
206
- if (value.type !== 'FunctionExpression') {
207
- throw (0, _createSyntaxError.createSyntaxError)(node, `Invalid method property, the value must be a "FunctionExpression" or "ArrowFunctionExpression. Instead got "${value.type}".`);
208
- }
209
-
210
- const newNode = {
211
- type: 'ObjectMethod',
212
- kind: node.kind === 'init' ? 'method' : node.kind,
213
- method: node.kind === 'init' ? true : false,
214
- computed: node.computed,
215
- key: key,
216
- id: null,
217
- params: value.params,
218
- body: value.body,
219
- async: value.async,
220
- generator: value.generator,
221
- returnType: value.returnType,
222
- typeParameters: value.typeParameters,
223
- loc: node.loc,
224
- range: node.range,
225
- parent: node.parent
226
- };
227
-
228
- if (node.kind !== 'init') {
229
- newNode.variance = null;
230
- }
231
-
232
- return newNode;
233
- }
234
-
235
- const propertyValue = value;
236
- return {
237
- type: 'ObjectProperty',
238
- computed: node.computed,
239
- key: node.key,
240
- value: propertyValue,
241
- method: node.method,
242
- shorthand: node.shorthand,
243
- loc: node.loc,
244
- range: node.range,
245
- parent: node.parent
246
- };
247
- }
248
-
249
- function mapMethodDefinition(node) {
250
- const value = node.value;
251
- const BaseClassMethod = {
252
- kind: node.kind,
253
- computed: node.computed,
254
- static: node.static,
255
- key: node.key,
256
- id: null,
257
- params: value.params,
258
- body: value.body,
259
- async: value.async,
260
- generator: value.generator,
261
- returnType: value.returnType,
262
- typeParameters: value.typeParameters,
263
- predicate: null,
264
- loc: node.loc,
265
- range: node.range,
266
- parent: node.parent
267
- };
268
-
269
- if (node.key.type === 'PrivateIdentifier') {
270
- return { ...BaseClassMethod,
271
- type: 'ClassPrivateMethod'
272
- };
273
- }
274
-
275
- return { ...BaseClassMethod,
276
- type: 'ClassMethod'
277
- };
278
- }
279
-
280
- function mapExportAllDeclaration(node) {
281
- if (node.exported != null) {
282
- return {
283
- type: 'ExportNamedDeclaration',
284
- declaration: null,
285
- specifiers: [{
286
- type: 'ExportNamespaceSpecifier',
287
- exported: node.exported,
288
- loc: {
289
- start: {
290
- column: node.loc.start.column + 'export '.length,
291
- line: node.loc.start.line
292
- },
293
- end: node.exported.loc.end
294
- },
295
- range: [node.range[0] + 'export '.length, node.exported.range[1]],
296
- parent: EMPTY_PARENT
297
- }],
298
- source: node.source,
299
- exportKind: node.exportKind,
300
- loc: node.loc,
301
- range: node.range,
302
- parent: node.parent
303
- };
304
- }
305
-
306
- delete node.exported;
307
- return node;
308
- }
309
-
310
- function mapRestElement(node) {
311
- const argument = node.argument;
312
-
313
- if ((argument.type === 'Identifier' || argument.type === 'ObjectPattern' || argument.type === 'ArrayPattern') && argument.typeAnnotation != null) {
314
- const argumentRange = argument.range;
315
- let argumentLoc = argument.loc;
316
-
317
- if (argument.type === 'Identifier') {
318
- argumentRange[1] = argumentRange[0] + argument.name.length;
319
- argumentLoc = {
320
- start: argumentLoc.start,
321
- end: {
322
- line: argumentLoc.start.line,
323
- column: argumentLoc.start.column + argument.name.length
324
- }
325
- };
326
- }
327
-
328
- return nodeWith(node, {
329
- typeAnnotation: argument.typeAnnotation,
330
- argument: nodeWith(argument, {
331
- typeAnnotation: null,
332
- range: argumentRange,
333
- loc: argumentLoc
334
- })
335
- });
336
- }
337
-
338
- return node;
339
- }
340
-
341
- function mapImportExpression(node) {
342
- return {
343
- type: 'CallExpression',
344
- callee: {
345
- type: 'Import',
346
- loc: {
347
- start: node.loc.start,
348
- end: {
349
- line: node.loc.start.line,
350
- column: node.loc.start.column + 'import'.length
351
- }
352
- },
353
- range: [node.range[0], node.range[0] + 'import'.length],
354
- parent: EMPTY_PARENT
355
- },
356
- arguments: [node.source],
357
- loc: node.loc,
358
- range: node.range,
359
- parent: node.parent
360
- };
361
- }
362
-
363
- function mapPrivateIdentifier(node) {
364
- return {
365
- type: 'PrivateName',
366
- id: {
367
- type: 'Identifier',
368
- name: node.name,
369
- optional: false,
370
- typeAnnotation: null,
371
- loc: {
372
- start: {
373
- line: node.loc.start.line,
374
- column: node.loc.start.column + 1
375
- },
376
- end: node.loc.end
377
- },
378
- range: [node.range[0] + 1, node.range[1]],
379
- parent: EMPTY_PARENT
380
- },
381
- loc: node.loc,
382
- range: node.range,
383
- parent: node.parent
384
- };
385
- }
386
-
387
- function mapPropertyDefinition(node) {
388
- if (node.key.type === 'PrivateIdentifier') {
389
- return {
390
- type: 'ClassPrivateProperty',
391
- key: mapPrivateIdentifier(node.key),
392
- value: node.value,
393
- typeAnnotation: node.typeAnnotation,
394
- static: node.static,
395
- variance: node.variance,
396
- loc: node.loc,
397
- range: node.range,
398
- parent: node.parent
399
- };
400
- }
401
-
402
- return {
403
- type: 'ClassProperty',
404
- key: node.key,
405
- value: node.value,
406
- typeAnnotation: node.typeAnnotation,
407
- static: node.static,
408
- variance: node.variance,
409
- declare: node.declare,
410
- optional: node.optional,
411
- computed: node.computed,
412
- loc: node.loc,
413
- range: node.range,
414
- parent: node.parent
415
- };
416
- }
417
-
418
- function mapTypeofTypeAnnotation(node) {
419
- delete node.typeArguments;
420
-
421
- if (node.argument.type !== 'GenericTypeAnnotation') {
422
- return nodeWith(node, {
423
- argument: {
424
- type: 'GenericTypeAnnotation',
425
- id: node.argument,
426
- typeParameters: null,
427
- loc: node.argument.loc,
428
- range: node.argument.range,
429
- parent: EMPTY_PARENT
430
- }
431
- });
432
- }
433
-
434
- return node;
435
- }
436
-
437
- function mapDeclareVariable(node) {
438
- if (node.kind != null) {
439
- delete node.kind;
440
- }
441
-
442
- return node;
443
- }
444
-
445
- function mapJSXElement(node) {
446
- if (node.openingElement.typeArguments != null) {
447
- delete node.openingElement.typeArguments;
448
- }
449
-
450
- return node;
451
- }
452
-
453
- function mapChainExpressionInnerNode(node) {
454
- switch (node.type) {
455
- case 'MemberExpression':
456
- {
457
- const innerObject = mapChainExpressionInnerNode(node.object);
458
-
459
- if (!node.optional && innerObject.type !== 'OptionalMemberExpression' && innerObject.type !== 'OptionalCallExpression') {
460
- return node;
461
- }
462
-
463
- return {
464
- type: 'OptionalMemberExpression',
465
- object: innerObject,
466
- property: node.property,
467
- computed: node.computed,
468
- optional: node.optional,
469
- loc: node.loc,
470
- range: node.range,
471
- parent: node.parent
472
- };
473
- }
474
-
475
- case 'CallExpression':
476
- {
477
- const innerCallee = mapChainExpressionInnerNode(node.callee);
478
-
479
- if (!node.optional && innerCallee.type !== 'OptionalMemberExpression' && innerCallee.type !== 'OptionalCallExpression') {
480
- return node;
481
- }
482
-
483
- return {
484
- type: 'OptionalCallExpression',
485
- callee: innerCallee,
486
- optional: node.optional,
487
- arguments: node.arguments,
488
- typeArguments: node.typeArguments,
489
- loc: node.loc,
490
- range: node.range,
491
- parent: node.parent
492
- };
493
- }
494
-
495
- default:
496
- {
497
- return node;
498
- }
499
- }
500
- }
501
-
502
- function mapChainExpression(node) {
503
- return mapChainExpressionInnerNode(node.expression);
504
- }
505
-
506
- function mapLiteral(node) {
507
- const base = {
508
- loc: node.loc,
509
- range: node.range,
510
- parent: node.parent
511
- };
512
-
513
- switch (node.literalType) {
514
- case 'string':
515
- {
516
- return {
517
- type: 'StringLiteral',
518
- value: node.value,
519
- extra: {
520
- rawValue: node.value,
521
- raw: node.raw
522
- },
523
- ...base
524
- };
525
- }
526
-
527
- case 'numeric':
528
- {
529
- return {
530
- type: 'NumericLiteral',
531
- value: node.value,
532
- extra: {
533
- rawValue: node.value,
534
- raw: node.raw
535
- },
536
- ...base
537
- };
538
- }
539
-
540
- case 'bigint':
541
- {
542
- return {
543
- type: 'BigIntLiteral',
544
- value: node.bigint,
545
- extra: {
546
- rawValue: node.bigint,
547
- raw: node.raw
548
- },
549
- ...base
550
- };
551
- }
552
-
553
- case 'boolean':
554
- {
555
- return {
556
- type: 'BooleanLiteral',
557
- value: node.value,
558
- ...base
559
- };
560
- }
561
-
562
- case 'null':
563
- {
564
- return {
565
- type: 'NullLiteral',
566
- ...base
567
- };
568
- }
569
-
570
- case 'regexp':
571
- {
572
- return {
573
- type: 'RegExpLiteral',
574
- extra: {
575
- raw: node.raw
576
- },
577
- pattern: node.regex.pattern,
578
- flags: node.regex.flags,
579
- ...base
580
- };
581
- }
582
- }
583
- }
584
-
585
- function transformNode(node) {
586
- switch (node.type) {
587
- case 'Program':
588
- {
589
- var _node$parent;
590
-
591
- if (((_node$parent = node.parent) == null ? void 0 : _node$parent.type) === 'File') {
592
- return node;
593
- }
594
-
595
- return mapProgram(node);
596
- }
597
-
598
- case 'BlockStatement':
599
- {
600
- return mapNodeWithDirectives(node);
601
- }
602
-
603
- case 'Property':
604
- {
605
- return mapProperty(node);
606
- }
607
-
608
- case 'TemplateElement':
609
- {
610
- return mapTemplateElement(node);
611
- }
612
-
613
- case 'MethodDefinition':
614
- {
615
- return mapMethodDefinition(node);
616
- }
617
-
618
- case 'ExportAllDeclaration':
619
- {
620
- return mapExportAllDeclaration(node);
621
- }
622
-
623
- case 'RestElement':
624
- {
625
- return mapRestElement(node);
626
- }
627
-
628
- case 'ImportExpression':
629
- {
630
- return mapImportExpression(node);
631
- }
632
-
633
- case 'PrivateIdentifier':
634
- {
635
- return mapPrivateIdentifier(node);
636
- }
637
-
638
- case 'PropertyDefinition':
639
- {
640
- return mapPropertyDefinition(node);
641
- }
642
-
643
- case 'TypeofTypeAnnotation':
644
- {
645
- return mapTypeofTypeAnnotation(node);
646
- }
647
-
648
- case 'DeclareVariable':
649
- {
650
- return mapDeclareVariable(node);
651
- }
652
-
653
- case 'JSXElement':
654
- {
655
- return mapJSXElement(node);
656
- }
657
-
658
- case 'Literal':
659
- {
660
- return mapLiteral(node);
661
- }
662
-
663
- case 'ChainExpression':
664
- {
665
- return mapChainExpression(node);
666
- }
667
-
668
- case 'TypeCastExpression':
669
- {
670
- node.loc.start.column = node.loc.start.column + 1;
671
- node.loc.end.column = node.loc.end.column - 1;
672
- node.range = [node.range[0] + 1, node.range[1] - 1];
673
- return node;
674
- }
675
-
676
- case 'AsExpression':
677
- {
678
- const {
679
- typeAnnotation
680
- } = node;
681
- node.type = 'TypeCastExpression';
682
- node.typeAnnotation = {
683
- type: 'TypeAnnotation',
684
- typeAnnotation,
685
- loc: typeAnnotation.loc,
686
- range: typeAnnotation.range
687
- };
688
- return node;
689
- }
690
-
691
- case 'AsConstExpression':
692
- {
693
- return node.expression;
694
- }
695
-
696
- case 'NumberLiteralTypeAnnotation':
697
- {
698
- node.extra = {
699
- rawValue: node.value,
700
- raw: node.raw
701
- };
702
- delete node.raw;
703
- return node;
704
- }
705
-
706
- case 'StringLiteralTypeAnnotation':
707
- {
708
- node.extra = {
709
- rawValue: node.value,
710
- raw: node.raw
711
- };
712
- delete node.raw;
713
- return node;
714
- }
715
-
716
- case 'BigIntLiteralTypeAnnotation':
717
- {
718
- node.extra = {
719
- rawValue: node.bigint,
720
- raw: node.raw
721
- };
722
- delete node.bigint;
723
- delete node.raw;
724
- return node;
725
- }
726
-
727
- case 'BooleanLiteralTypeAnnotation':
728
- {
729
- delete node.raw;
730
- return node;
731
- }
732
-
733
- case 'TupleTypeAnnotation':
734
- {
735
- delete node.inexact;
736
- node.types = node.elementTypes;
737
- delete node.elementTypes;
738
- return node;
739
- }
740
-
741
- case 'UnknownTypeAnnotation':
742
- {
743
- return {
744
- type: 'GenericTypeAnnotation',
745
- id: {
746
- type: 'Identifier',
747
- name: 'unknown',
748
- optional: false,
749
- typeAnnotation: null,
750
- loc: node.loc,
751
- range: node.range,
752
- parent: EMPTY_PARENT
753
- },
754
- typeParameters: null,
755
- loc: node.loc,
756
- range: node.range,
757
- parent: EMPTY_PARENT
758
- };
759
- }
760
-
761
- case 'NeverTypeAnnotation':
762
- {
763
- return {
764
- type: 'GenericTypeAnnotation',
765
- id: {
766
- type: 'Identifier',
767
- name: 'never',
768
- optional: false,
769
- typeAnnotation: null,
770
- loc: node.loc,
771
- range: node.range,
772
- parent: EMPTY_PARENT
773
- },
774
- typeParameters: null,
775
- loc: node.loc,
776
- range: node.range,
777
- parent: EMPTY_PARENT
778
- };
779
- }
780
-
781
- case 'UndefinedTypeAnnotation':
782
- {
783
- return {
784
- type: 'GenericTypeAnnotation',
785
- id: {
786
- type: 'Identifier',
787
- name: 'undefined',
788
- optional: false,
789
- typeAnnotation: null,
790
- loc: node.loc,
791
- range: node.range,
792
- parent: EMPTY_PARENT
793
- },
794
- typeParameters: null,
795
- loc: node.loc,
796
- range: node.range,
797
- parent: EMPTY_PARENT
798
- };
799
- }
800
-
801
- case 'JSXText':
802
- {
803
- node.extra = {
804
- rawValue: node.value,
805
- raw: node.raw
806
- };
807
- delete node.raw;
808
- return node;
809
- }
810
-
811
- case 'Identifier':
812
- {
813
- if (node.optional === false || node.optional == null) {
814
- delete node.optional;
815
- }
816
-
817
- if (node.typeAnnotation == null) {
818
- delete node.typeAnnotation;
819
- }
820
-
821
- return node;
822
- }
823
-
824
- case 'CallExpression':
825
- {
826
- if (node.optional === false) {
827
- delete node.optional;
828
- }
829
-
830
- if (node.typeArguments == null) {
831
- delete node.typeArguments;
832
- }
833
-
834
- return node;
835
- }
836
-
837
- case 'OptionalCallExpression':
838
- {
839
- if (node.typeArguments == null) {
840
- delete node.typeArguments;
841
- }
842
-
843
- return node;
844
- }
845
-
846
- case 'MemberExpression':
847
- {
848
- delete node.optional;
849
- return node;
850
- }
851
-
852
- case 'ExpressionStatement':
853
- {
854
- delete node.directive;
855
- return node;
856
- }
857
-
858
- case 'ObjectPattern':
859
- case 'ArrayPattern':
860
- {
861
- if (node.typeAnnotation == null) {
862
- delete node.typeAnnotation;
863
- }
864
-
865
- return node;
866
- }
867
-
868
- case 'FunctionDeclaration':
869
- case 'FunctionExpression':
870
- case 'ArrowFunctionExpression':
871
- case 'ClassMethod':
872
- {
873
- delete node.expression;
874
-
875
- if (node.predicate == null) {
876
- delete node.predicate;
877
- }
878
-
879
- if (node.returnType == null) {
880
- delete node.returnType;
881
- }
882
-
883
- if (node.typeParameters == null) {
884
- delete node.typeParameters;
885
- }
886
-
887
- return node;
888
- }
889
-
890
- case 'ObjectMethod':
891
- {
892
- if (node.returnType == null) {
893
- delete node.returnType;
894
- }
895
-
896
- if (node.typeParameters == null) {
897
- delete node.typeParameters;
898
- }
899
-
900
- return node;
901
- }
902
-
903
- case 'ClassPrivateMethod':
904
- {
905
- if (node.computed === false) {
906
- delete node.computed;
907
- }
908
-
909
- if (node.predicate == null) {
910
- delete node.predicate;
911
- }
912
-
913
- if (node.returnType == null) {
914
- delete node.returnType;
915
- }
916
-
917
- if (node.typeParameters == null) {
918
- delete node.typeParameters;
919
- }
920
-
921
- return node;
922
- }
923
-
924
- case 'ClassExpression':
925
- case 'ClassDeclaration':
926
- {
927
- if (node.decorators == null || node.decorators.length === 0) {
928
- delete node.decorators;
929
- }
930
-
931
- if (node.implements == null || node.implements.length === 0) {
932
- delete node.implements;
933
- }
934
-
935
- if (node.superTypeArguments == null) {
936
- delete node.superTypeArguments;
937
- } else {
938
- node.superTypeParameters = node.superTypeArguments;
939
- delete node.superTypeArguments;
940
- }
941
-
942
- if (node.typeParameters == null) {
943
- delete node.typeParameters;
944
- }
945
-
946
- return node;
947
- }
948
-
949
- case 'ClassProperty':
950
- {
951
- if (node.optional === false) {
952
- delete node.optional;
953
- }
954
-
955
- if (node.declare === false) {
956
- delete node.declare;
957
- }
958
-
959
- if (node.typeAnnotation == null) {
960
- delete node.typeAnnotation;
961
- }
962
-
963
- return node;
964
- }
965
-
966
- case 'ClassPrivateProperty':
967
- {
968
- if (node.typeAnnotation == null) {
969
- delete node.typeAnnotation;
970
- }
971
-
972
- return node;
973
- }
974
-
975
- case 'ExportNamedDeclaration':
976
- {
977
- if (node.declaration == null) {
978
- delete node.declaration;
979
- }
980
-
981
- return node;
982
- }
983
-
984
- case 'ImportDeclaration':
985
- {
986
- if (node.attributes == null || node.attributes.length === 0) {
987
- delete node.attributes;
988
- }
989
-
990
- return node;
991
- }
992
-
993
- case 'ArrayExpression':
994
- {
995
- delete node.trailingComma;
996
- return node;
997
- }
998
-
999
- case 'JSXOpeningElement':
1000
- {
1001
- if (node.typeArguments == null) {
1002
- delete node.typeArguments;
1003
- }
1004
-
1005
- return node;
1006
- }
1007
-
1008
- case 'DeclareOpaqueType':
1009
- case 'OpaqueType':
1010
- {
1011
- if (node.lowerBound != null) {
1012
- delete node.lowerBound;
1013
- }
1014
-
1015
- if (node.upperBound != null) {
1016
- delete node.upperBound;
1017
- }
1018
-
1019
- return node;
1020
- }
1021
-
1022
- default:
1023
- {
1024
- return node;
1025
- }
1026
- }
1027
- }
1028
-
1029
- function transformProgram(program, options) {
1030
- var _resultNode$type;
1031
-
1032
- const resultNode = _SimpleTransform.SimpleTransform.transform(program, {
1033
- transform(node) {
1034
- return transformNode(node);
1035
- },
1036
-
1037
- visitorKeys: FlowESTreeAndBabelVisitorKeys
1038
- });
1039
-
1040
- _SimpleTraverser.SimpleTraverser.traverse(resultNode, {
1041
- enter(node) {
1042
- fixSourceLocation(node, options);
1043
- },
1044
-
1045
- leave() {},
1046
-
1047
- visitorKeys: FlowESTreeAndBabelVisitorKeys
1048
- });
1049
-
1050
- if ((resultNode == null ? void 0 : resultNode.type) === 'File') {
1051
- return resultNode;
1052
- }
1053
-
1054
- throw new Error(`Unknown AST node of type "${(_resultNode$type = resultNode == null ? void 0 : resultNode.type) != null ? _resultNode$type : 'NULL'}" returned from Babel conversion`);
1055
- }