hermes-parser 0.32.0 → 0.33.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.
- package/README.md +3 -0
- package/dist/HermesASTAdapter.js +1 -1
- package/dist/HermesASTAdapter.js.flow +1 -1
- package/dist/HermesParser.js +2 -2
- package/dist/HermesParser.js.flow +2 -0
- package/dist/HermesParserDeserializer.js +0 -1
- package/dist/HermesParserDeserializer.js.flow +0 -1
- package/dist/HermesParserNodeDeserializers.js +109 -5
- package/dist/HermesParserWASM.js +1 -1
- package/dist/HermesParserWASM.js.flow +11 -1
- package/dist/ParserOptions.js +1 -1
- package/dist/ParserOptions.js.flow +10 -0
- package/dist/babel/TransformESTreeToBabel.js +79 -3
- package/dist/babel/TransformESTreeToBabel.js.flow +76 -2
- package/dist/estree/StripFlowTypes.js +1 -1
- package/dist/estree/StripFlowTypes.js.flow +1 -1
- package/dist/estree/{StripComponentSyntax.js → TransformComponentSyntax.js} +1 -1
- package/dist/estree/{StripComponentSyntax.js.flow → TransformComponentSyntax.js.flow} +1 -1
- package/dist/estree/TransformEnumSyntax.js +106 -0
- package/dist/estree/TransformEnumSyntax.js.flow +125 -0
- package/dist/estree/TransformMatchSyntax.js +124 -56
- package/dist/estree/TransformMatchSyntax.js.flow +124 -46
- package/dist/estree/TransformRecordSyntax.js +294 -0
- package/dist/estree/TransformRecordSyntax.js.flow +308 -0
- package/dist/generated/ESTreeVisitorKeys.js +16 -4
- package/dist/generated/ParserVisitorKeys.js +45 -4
- package/dist/index.js +13 -3
- package/dist/index.js.flow +13 -3
- package/dist/src/HermesASTAdapter.js +1 -1
- package/dist/src/HermesParser.js +2 -2
- package/dist/src/HermesParserDeserializer.js +0 -1
- package/dist/src/HermesParserNodeDeserializers.js +109 -5
- package/dist/src/ParserOptions.js +1 -1
- package/dist/src/babel/TransformESTreeToBabel.js +79 -3
- package/dist/src/estree/StripFlowTypes.js +1 -1
- package/dist/src/estree/{StripComponentSyntax.js → TransformComponentSyntax.js} +1 -1
- package/dist/src/estree/TransformEnumSyntax.js +106 -0
- package/dist/src/estree/TransformMatchSyntax.js +124 -56
- package/dist/src/estree/TransformRecordSyntax.js +294 -0
- package/dist/src/generated/ESTreeVisitorKeys.js +16 -4
- package/dist/src/generated/ParserVisitorKeys.js +45 -4
- package/dist/src/index.js +13 -3
- package/dist/src/transform/SimpleTransform.js +20 -4
- package/dist/src/transform/astNodeMutationHelpers.js +7 -2
- package/dist/src/utils/GenID.js +28 -23
- package/dist/src/utils/isReservedWord.js +62 -0
- package/dist/transform/SimpleTransform.js +20 -4
- package/dist/transform/SimpleTransform.js.flow +34 -8
- package/dist/transform/astNodeMutationHelpers.js +7 -2
- package/dist/transform/astNodeMutationHelpers.js.flow +10 -2
- package/dist/utils/GenID.js +28 -23
- package/dist/utils/GenID.js.flow +23 -22
- package/dist/utils/isReservedWord.js +62 -0
- package/dist/utils/isReservedWord.js.flow +57 -0
- package/package.json +2 -2
|
@@ -42,7 +42,6 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
42
42
|
elementType: 'Node'
|
|
43
43
|
},
|
|
44
44
|
ArrowFunctionExpression: {
|
|
45
|
-
id: 'Node',
|
|
46
45
|
params: 'NodeList',
|
|
47
46
|
body: 'Node',
|
|
48
47
|
typeParameters: 'Node',
|
|
@@ -102,7 +101,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
102
101
|
id: 'Node',
|
|
103
102
|
typeParameters: 'Node',
|
|
104
103
|
superClass: 'Node',
|
|
105
|
-
|
|
104
|
+
superTypeArguments: 'Node',
|
|
106
105
|
implements: 'NodeList',
|
|
107
106
|
decorators: 'NodeList',
|
|
108
107
|
body: 'Node'
|
|
@@ -111,7 +110,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
111
110
|
id: 'Node',
|
|
112
111
|
typeParameters: 'Node',
|
|
113
112
|
superClass: 'Node',
|
|
114
|
-
|
|
113
|
+
superTypeArguments: 'Node',
|
|
115
114
|
implements: 'NodeList',
|
|
116
115
|
decorators: 'NodeList',
|
|
117
116
|
body: 'Node'
|
|
@@ -484,6 +483,14 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
484
483
|
MatchIdentifierPattern: {
|
|
485
484
|
id: 'Node'
|
|
486
485
|
},
|
|
486
|
+
MatchInstanceObjectPattern: {
|
|
487
|
+
properties: 'NodeList',
|
|
488
|
+
rest: 'Node'
|
|
489
|
+
},
|
|
490
|
+
MatchInstancePattern: {
|
|
491
|
+
targetConstructor: 'Node',
|
|
492
|
+
properties: 'Node'
|
|
493
|
+
},
|
|
487
494
|
MatchLiteralPattern: {
|
|
488
495
|
literal: 'Node'
|
|
489
496
|
},
|
|
@@ -531,6 +538,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
531
538
|
value: 'Node'
|
|
532
539
|
},
|
|
533
540
|
MixedTypeAnnotation: {},
|
|
541
|
+
NeverTypeAnnotation: {},
|
|
534
542
|
NewExpression: {
|
|
535
543
|
callee: 'Node',
|
|
536
544
|
typeArguments: 'Node',
|
|
@@ -618,6 +626,37 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
618
626
|
qualification: 'Node',
|
|
619
627
|
id: 'Node'
|
|
620
628
|
},
|
|
629
|
+
RecordDeclaration: {
|
|
630
|
+
id: 'Node',
|
|
631
|
+
typeParameters: 'Node',
|
|
632
|
+
implements: 'NodeList',
|
|
633
|
+
body: 'Node'
|
|
634
|
+
},
|
|
635
|
+
RecordDeclarationBody: {
|
|
636
|
+
elements: 'NodeList'
|
|
637
|
+
},
|
|
638
|
+
RecordDeclarationImplements: {
|
|
639
|
+
id: 'Node',
|
|
640
|
+
typeArguments: 'Node'
|
|
641
|
+
},
|
|
642
|
+
RecordDeclarationProperty: {
|
|
643
|
+
key: 'Node',
|
|
644
|
+
typeAnnotation: 'Node',
|
|
645
|
+
defaultValue: 'Node'
|
|
646
|
+
},
|
|
647
|
+
RecordDeclarationStaticProperty: {
|
|
648
|
+
key: 'Node',
|
|
649
|
+
typeAnnotation: 'Node',
|
|
650
|
+
value: 'Node'
|
|
651
|
+
},
|
|
652
|
+
RecordExpression: {
|
|
653
|
+
recordConstructor: 'Node',
|
|
654
|
+
typeArguments: 'Node',
|
|
655
|
+
properties: 'Node'
|
|
656
|
+
},
|
|
657
|
+
RecordExpressionProperties: {
|
|
658
|
+
properties: 'NodeList'
|
|
659
|
+
},
|
|
621
660
|
RegExpLiteral: {},
|
|
622
661
|
RestElement: {
|
|
623
662
|
argument: 'Node'
|
|
@@ -667,7 +706,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
667
706
|
finalizer: 'Node'
|
|
668
707
|
},
|
|
669
708
|
TupleTypeAnnotation: {
|
|
670
|
-
|
|
709
|
+
elementTypes: 'NodeList'
|
|
671
710
|
},
|
|
672
711
|
TupleTypeLabeledElement: {
|
|
673
712
|
label: 'Node',
|
|
@@ -715,9 +754,11 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
715
754
|
UnaryExpression: {
|
|
716
755
|
argument: 'Node'
|
|
717
756
|
},
|
|
757
|
+
UndefinedTypeAnnotation: {},
|
|
718
758
|
UnionTypeAnnotation: {
|
|
719
759
|
types: 'NodeList'
|
|
720
760
|
},
|
|
761
|
+
UnknownTypeAnnotation: {},
|
|
721
762
|
UpdateExpression: {
|
|
722
763
|
argument: 'Node'
|
|
723
764
|
},
|
package/dist/index.js
CHANGED
|
@@ -31,10 +31,14 @@ var _ESTreeVisitorKeys = _interopRequireDefault(require("./generated/ESTreeVisit
|
|
|
31
31
|
|
|
32
32
|
exports.FlowVisitorKeys = _ESTreeVisitorKeys.default;
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var TransformComponentSyntax = _interopRequireWildcard(require("./estree/TransformComponentSyntax"));
|
|
35
|
+
|
|
36
|
+
var TransformEnumSyntax = _interopRequireWildcard(require("./estree/TransformEnumSyntax"));
|
|
35
37
|
|
|
36
38
|
var TransformMatchSyntax = _interopRequireWildcard(require("./estree/TransformMatchSyntax"));
|
|
37
39
|
|
|
40
|
+
var TransformRecordSyntax = _interopRequireWildcard(require("./estree/TransformRecordSyntax"));
|
|
41
|
+
|
|
38
42
|
var StripFlowTypesForBabel = _interopRequireWildcard(require("./estree/StripFlowTypesForBabel"));
|
|
39
43
|
|
|
40
44
|
var TransformESTreeToBabel = _interopRequireWildcard(require("./babel/TransformESTreeToBabel"));
|
|
@@ -124,6 +128,10 @@ function getOptions(options = { ...DEFAULTS
|
|
|
124
128
|
options.enableExperimentalFlowMatchSyntax = true; // Enable by default
|
|
125
129
|
}
|
|
126
130
|
|
|
131
|
+
if (options.enableExperimentalFlowRecordSyntax == null) {
|
|
132
|
+
options.enableExperimentalFlowRecordSyntax = true; // Enable by default
|
|
133
|
+
}
|
|
134
|
+
|
|
127
135
|
options.tokens = options.tokens === true;
|
|
128
136
|
options.allowReturnOutsideFunction = options.allowReturnOutsideFunction === true;
|
|
129
137
|
return options;
|
|
@@ -140,13 +148,15 @@ function parse(code, opts) {
|
|
|
140
148
|
return estreeAST;
|
|
141
149
|
}
|
|
142
150
|
|
|
143
|
-
const loweredESTreeAST = [TransformMatchSyntax.transformProgram,
|
|
151
|
+
const loweredESTreeAST = [TransformEnumSyntax.transformProgram, TransformMatchSyntax.transformProgram, TransformComponentSyntax.transformProgram, TransformRecordSyntax.transformProgram, StripFlowTypesForBabel.transformProgram].reduce((ast, transform) => transform(ast, options), estreeAST);
|
|
144
152
|
return TransformESTreeToBabel.transformProgram(loweredESTreeAST, options);
|
|
145
153
|
}
|
|
146
154
|
|
|
147
155
|
const Transforms = {
|
|
156
|
+
transformEnumSyntax: TransformEnumSyntax.transformProgram,
|
|
148
157
|
transformMatchSyntax: TransformMatchSyntax.transformProgram,
|
|
149
|
-
|
|
158
|
+
transformComponentSyntax: TransformComponentSyntax.transformProgram,
|
|
159
|
+
transformRecordSyntax: TransformRecordSyntax.transformProgram,
|
|
150
160
|
stripFlowTypesForBabel: StripFlowTypesForBabel.transformProgram,
|
|
151
161
|
stripFlowTypes: StripFlowTypes.transformProgram
|
|
152
162
|
};
|
package/dist/index.js.flow
CHANGED
|
@@ -17,8 +17,10 @@ import type {BabelFile} from './babel/TransformESTreeToBabel';
|
|
|
17
17
|
import * as HermesParser from './HermesParser';
|
|
18
18
|
import HermesToESTreeAdapter from './HermesToESTreeAdapter';
|
|
19
19
|
import FlowVisitorKeys from './generated/ESTreeVisitorKeys';
|
|
20
|
-
import * as
|
|
20
|
+
import * as TransformComponentSyntax from './estree/TransformComponentSyntax';
|
|
21
|
+
import * as TransformEnumSyntax from './estree/TransformEnumSyntax';
|
|
21
22
|
import * as TransformMatchSyntax from './estree/TransformMatchSyntax';
|
|
23
|
+
import * as TransformRecordSyntax from './estree/TransformRecordSyntax';
|
|
22
24
|
import * as StripFlowTypesForBabel from './estree/StripFlowTypesForBabel';
|
|
23
25
|
import * as TransformESTreeToBabel from './babel/TransformESTreeToBabel';
|
|
24
26
|
import * as StripFlowTypes from './estree/StripFlowTypes';
|
|
@@ -57,6 +59,10 @@ function getOptions(options?: ParserOptions = {...DEFAULTS}) {
|
|
|
57
59
|
options.enableExperimentalFlowMatchSyntax = true; // Enable by default
|
|
58
60
|
}
|
|
59
61
|
|
|
62
|
+
if (options.enableExperimentalFlowRecordSyntax == null) {
|
|
63
|
+
options.enableExperimentalFlowRecordSyntax = true; // Enable by default
|
|
64
|
+
}
|
|
65
|
+
|
|
60
66
|
options.tokens = options.tokens === true;
|
|
61
67
|
options.allowReturnOutsideFunction =
|
|
62
68
|
options.allowReturnOutsideFunction === true;
|
|
@@ -92,8 +98,10 @@ export function parse(
|
|
|
92
98
|
}
|
|
93
99
|
|
|
94
100
|
const loweredESTreeAST = [
|
|
101
|
+
TransformEnumSyntax.transformProgram,
|
|
95
102
|
TransformMatchSyntax.transformProgram,
|
|
96
|
-
|
|
103
|
+
TransformComponentSyntax.transformProgram,
|
|
104
|
+
TransformRecordSyntax.transformProgram,
|
|
97
105
|
StripFlowTypesForBabel.transformProgram,
|
|
98
106
|
].reduce((ast, transform) => transform(ast, options), estreeAST);
|
|
99
107
|
|
|
@@ -111,8 +119,10 @@ export * as astNodeMutationHelpers from './transform/astNodeMutationHelpers';
|
|
|
111
119
|
export {default as mutateESTreeASTForPrettier} from './utils/mutateESTreeASTForPrettier';
|
|
112
120
|
|
|
113
121
|
const Transforms = {
|
|
122
|
+
transformEnumSyntax: TransformEnumSyntax.transformProgram,
|
|
114
123
|
transformMatchSyntax: TransformMatchSyntax.transformProgram,
|
|
115
|
-
|
|
124
|
+
transformComponentSyntax: TransformComponentSyntax.transformProgram,
|
|
125
|
+
transformRecordSyntax: TransformRecordSyntax.transformProgram,
|
|
116
126
|
stripFlowTypesForBabel: StripFlowTypesForBabel.transformProgram,
|
|
117
127
|
stripFlowTypes: StripFlowTypes.transformProgram,
|
|
118
128
|
};
|
package/dist/src/HermesParser.js
CHANGED
|
@@ -51,7 +51,7 @@ function initHermesParserWASM() {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
});
|
|
54
|
-
hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', ['number', 'number', 'number', 'number', 'number', 'number', 'number']);
|
|
54
|
+
hermesParse = HermesParserWASM.cwrap('hermesParse', 'number', ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']);
|
|
55
55
|
hermesParseResult_free = HermesParserWASM.cwrap('hermesParseResult_free', 'void', ['number']);
|
|
56
56
|
hermesParseResult_getError = HermesParserWASM.cwrap('hermesParseResult_getError', 'string', ['number']);
|
|
57
57
|
hermesParseResult_getErrorLine = HermesParserWASM.cwrap('hermesParseResult_getErrorLine', 'number', ['number']);
|
|
@@ -81,7 +81,7 @@ function parse(source, options) {
|
|
|
81
81
|
try {
|
|
82
82
|
// Copy source text onto WASM heap
|
|
83
83
|
copyToHeap(sourceBuffer, sourceAddr);
|
|
84
|
-
const parseResult = hermesParse(sourceAddr, sourceBuffer.length + 1, options.flow === 'detect', options.enableExperimentalComponentSyntax, options.enableExperimentalFlowMatchSyntax, options.tokens, options.allowReturnOutsideFunction);
|
|
84
|
+
const parseResult = hermesParse(sourceAddr, sourceBuffer.length + 1, options.flow === 'detect', options.enableExperimentalComponentSyntax, options.enableExperimentalFlowMatchSyntax, options.enableExperimentalFlowRecordSyntax, options.tokens, options.allowReturnOutsideFunction);
|
|
85
85
|
|
|
86
86
|
try {
|
|
87
87
|
// Extract and throw error from parse result if parsing failed
|
|
@@ -66,7 +66,6 @@ function deserializeArrowFunctionExpression() {
|
|
|
66
66
|
return {
|
|
67
67
|
type: 'ArrowFunctionExpression',
|
|
68
68
|
loc: this.addEmptyLoc(),
|
|
69
|
-
id: this.deserializeNode(),
|
|
70
69
|
params: this.deserializeNodeList(),
|
|
71
70
|
body: this.deserializeNode(),
|
|
72
71
|
typeParameters: this.deserializeNode(),
|
|
@@ -694,7 +693,7 @@ function deserializeClassDeclaration() {
|
|
|
694
693
|
id: this.deserializeNode(),
|
|
695
694
|
typeParameters: this.deserializeNode(),
|
|
696
695
|
superClass: this.deserializeNode(),
|
|
697
|
-
|
|
696
|
+
superTypeArguments: this.deserializeNode(),
|
|
698
697
|
implements: this.deserializeNodeList(),
|
|
699
698
|
decorators: this.deserializeNodeList(),
|
|
700
699
|
body: this.deserializeNode()
|
|
@@ -708,7 +707,7 @@ function deserializeClassExpression() {
|
|
|
708
707
|
id: this.deserializeNode(),
|
|
709
708
|
typeParameters: this.deserializeNode(),
|
|
710
709
|
superClass: this.deserializeNode(),
|
|
711
|
-
|
|
710
|
+
superTypeArguments: this.deserializeNode(),
|
|
712
711
|
implements: this.deserializeNodeList(),
|
|
713
712
|
decorators: this.deserializeNodeList(),
|
|
714
713
|
body: this.deserializeNode()
|
|
@@ -1022,6 +1021,15 @@ function deserializeMatchMemberPattern() {
|
|
|
1022
1021
|
};
|
|
1023
1022
|
}
|
|
1024
1023
|
|
|
1024
|
+
function deserializeMatchInstancePattern() {
|
|
1025
|
+
return {
|
|
1026
|
+
type: 'MatchInstancePattern',
|
|
1027
|
+
loc: this.addEmptyLoc(),
|
|
1028
|
+
targetConstructor: this.deserializeNode(),
|
|
1029
|
+
properties: this.deserializeNode()
|
|
1030
|
+
};
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1025
1033
|
function deserializeMatchPatternLast() {
|
|
1026
1034
|
throw new Error('MatchPattern' + ' should not appear in program buffer');
|
|
1027
1035
|
}
|
|
@@ -1036,6 +1044,15 @@ function deserializeMatchObjectPatternProperty() {
|
|
|
1036
1044
|
};
|
|
1037
1045
|
}
|
|
1038
1046
|
|
|
1047
|
+
function deserializeMatchInstanceObjectPattern() {
|
|
1048
|
+
return {
|
|
1049
|
+
type: 'MatchInstanceObjectPattern',
|
|
1050
|
+
loc: this.addEmptyLoc(),
|
|
1051
|
+
properties: this.deserializeNodeList(),
|
|
1052
|
+
rest: this.deserializeNode()
|
|
1053
|
+
};
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1039
1056
|
function deserializeMatchRestPattern() {
|
|
1040
1057
|
return {
|
|
1041
1058
|
type: 'MatchRestPattern',
|
|
@@ -1305,6 +1322,27 @@ function deserializeVoidTypeAnnotation() {
|
|
|
1305
1322
|
};
|
|
1306
1323
|
}
|
|
1307
1324
|
|
|
1325
|
+
function deserializeNeverTypeAnnotation() {
|
|
1326
|
+
return {
|
|
1327
|
+
type: 'NeverTypeAnnotation',
|
|
1328
|
+
loc: this.addEmptyLoc()
|
|
1329
|
+
};
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
function deserializeUnknownTypeAnnotation() {
|
|
1333
|
+
return {
|
|
1334
|
+
type: 'UnknownTypeAnnotation',
|
|
1335
|
+
loc: this.addEmptyLoc()
|
|
1336
|
+
};
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
function deserializeUndefinedTypeAnnotation() {
|
|
1340
|
+
return {
|
|
1341
|
+
type: 'UndefinedTypeAnnotation',
|
|
1342
|
+
loc: this.addEmptyLoc()
|
|
1343
|
+
};
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1308
1346
|
function deserializeFunctionTypeAnnotation() {
|
|
1309
1347
|
return {
|
|
1310
1348
|
type: 'FunctionTypeAnnotation',
|
|
@@ -1415,7 +1453,7 @@ function deserializeTupleTypeAnnotation() {
|
|
|
1415
1453
|
return {
|
|
1416
1454
|
type: 'TupleTypeAnnotation',
|
|
1417
1455
|
loc: this.addEmptyLoc(),
|
|
1418
|
-
|
|
1456
|
+
elementTypes: this.deserializeNodeList(),
|
|
1419
1457
|
inexact: this.deserializeBoolean()
|
|
1420
1458
|
};
|
|
1421
1459
|
}
|
|
@@ -2000,6 +2038,72 @@ function deserializeComponentParameter() {
|
|
|
2000
2038
|
};
|
|
2001
2039
|
}
|
|
2002
2040
|
|
|
2041
|
+
function deserializeRecordDeclaration() {
|
|
2042
|
+
return {
|
|
2043
|
+
type: 'RecordDeclaration',
|
|
2044
|
+
loc: this.addEmptyLoc(),
|
|
2045
|
+
id: this.deserializeNode(),
|
|
2046
|
+
typeParameters: this.deserializeNode(),
|
|
2047
|
+
implements: this.deserializeNodeList(),
|
|
2048
|
+
body: this.deserializeNode()
|
|
2049
|
+
};
|
|
2050
|
+
}
|
|
2051
|
+
|
|
2052
|
+
function deserializeRecordDeclarationImplements() {
|
|
2053
|
+
return {
|
|
2054
|
+
type: 'RecordDeclarationImplements',
|
|
2055
|
+
loc: this.addEmptyLoc(),
|
|
2056
|
+
id: this.deserializeNode(),
|
|
2057
|
+
typeArguments: this.deserializeNode()
|
|
2058
|
+
};
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
function deserializeRecordDeclarationBody() {
|
|
2062
|
+
return {
|
|
2063
|
+
type: 'RecordDeclarationBody',
|
|
2064
|
+
loc: this.addEmptyLoc(),
|
|
2065
|
+
elements: this.deserializeNodeList()
|
|
2066
|
+
};
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
function deserializeRecordDeclarationProperty() {
|
|
2070
|
+
return {
|
|
2071
|
+
type: 'RecordDeclarationProperty',
|
|
2072
|
+
loc: this.addEmptyLoc(),
|
|
2073
|
+
key: this.deserializeNode(),
|
|
2074
|
+
typeAnnotation: this.deserializeNode(),
|
|
2075
|
+
defaultValue: this.deserializeNode()
|
|
2076
|
+
};
|
|
2077
|
+
}
|
|
2078
|
+
|
|
2079
|
+
function deserializeRecordDeclarationStaticProperty() {
|
|
2080
|
+
return {
|
|
2081
|
+
type: 'RecordDeclarationStaticProperty',
|
|
2082
|
+
loc: this.addEmptyLoc(),
|
|
2083
|
+
key: this.deserializeNode(),
|
|
2084
|
+
typeAnnotation: this.deserializeNode(),
|
|
2085
|
+
value: this.deserializeNode()
|
|
2086
|
+
};
|
|
2087
|
+
}
|
|
2088
|
+
|
|
2089
|
+
function deserializeRecordExpression() {
|
|
2090
|
+
return {
|
|
2091
|
+
type: 'RecordExpression',
|
|
2092
|
+
loc: this.addEmptyLoc(),
|
|
2093
|
+
recordConstructor: this.deserializeNode(),
|
|
2094
|
+
typeArguments: this.deserializeNode(),
|
|
2095
|
+
properties: this.deserializeNode()
|
|
2096
|
+
};
|
|
2097
|
+
}
|
|
2098
|
+
|
|
2099
|
+
function deserializeRecordExpressionProperties() {
|
|
2100
|
+
return {
|
|
2101
|
+
type: 'RecordExpressionProperties',
|
|
2102
|
+
loc: this.addEmptyLoc(),
|
|
2103
|
+
properties: this.deserializeNodeList()
|
|
2104
|
+
};
|
|
2105
|
+
}
|
|
2106
|
+
|
|
2003
2107
|
function deserializeFlowLast() {
|
|
2004
2108
|
throw new Error('Flow' + ' should not appear in program buffer');
|
|
2005
2109
|
}
|
|
@@ -2474,4 +2578,4 @@ function deserializeImplicitCheckedCast() {
|
|
|
2474
2578
|
};
|
|
2475
2579
|
}
|
|
2476
2580
|
|
|
2477
|
-
module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeComponentDeclaration, deserializeHookDeclaration, deserializeFunctionLikeLast, deserializeStatementFirst, deserializeMatchStatement, deserializeLoopStatementFirst, deserializeWhileStatement, deserializeDoWhileStatement, deserializeForInStatement, deserializeForOfStatement, deserializeForStatement, deserializeLoopStatementLast, deserializeDebuggerStatement, deserializeEmptyStatement, deserializeBlockStatement, deserializeStaticBlock, deserializeBreakStatement, deserializeContinueStatement, deserializeThrowStatement, deserializeReturnStatement, deserializeWithStatement, deserializeSwitchStatement, deserializeLabeledStatement, deserializeExpressionStatement, deserializeTryStatement, deserializeIfStatement, deserializeStatementLast, deserializeNullLiteral, deserializeBooleanLiteral, deserializeStringLiteral, deserializeNumericLiteral, deserializeRegExpLiteral, deserializeBigIntLiteral, deserializeThisExpression, deserializeSuper, deserializeSequenceExpression, deserializeObjectExpression, deserializeArrayExpression, deserializeSpreadElement, deserializeNewExpression, deserializeYieldExpression, deserializeAwaitExpression, deserializeImportExpression, deserializeCallExpressionLikeFirst, deserializeCallExpression, deserializeOptionalCallExpression, deserializeCallExpressionLikeLast, deserializeAssignmentExpression, deserializeUnaryExpression, deserializeUpdateExpression, deserializeMemberExpressionLikeFirst, deserializeMemberExpression, deserializeOptionalMemberExpression, deserializeMemberExpressionLikeLast, deserializeLogicalExpression, deserializeConditionalExpression, deserializeBinaryExpression, deserializeDirective, deserializeDirectiveLiteral, deserializeIdentifier, deserializePrivateName, deserializeMetaProperty, deserializeSwitchCase, deserializeCatchClause, deserializeVariableDeclarator, deserializeVariableDeclaration, deserializeTemplateLiteral, deserializeTaggedTemplateExpression, deserializeTemplateElement, deserializeProperty, deserializeClassLikeFirst, deserializeClassDeclaration, deserializeClassExpression, deserializeClassLikeLast, deserializeClassBody, deserializeClassProperty, deserializeClassPrivateProperty, deserializeMethodDefinition, deserializeImportDeclaration, deserializeImportSpecifier, deserializeImportDefaultSpecifier, deserializeImportNamespaceSpecifier, deserializeImportAttribute, deserializeExportNamedDeclaration, deserializeExportSpecifier, deserializeExportNamespaceSpecifier, deserializeExportDefaultDeclaration, deserializeExportAllDeclaration, deserializePatternFirst, deserializeObjectPattern, deserializeArrayPattern, deserializeRestElement, deserializeAssignmentPattern, deserializePatternLast, deserializeMatchStatementCase, deserializeMatchExpression, deserializeMatchExpressionCase, deserializeMatchPatternFirst, deserializeMatchWildcardPattern, deserializeMatchLiteralPattern, deserializeMatchUnaryPattern, deserializeMatchIdentifierPattern, deserializeMatchBindingPattern, deserializeMatchObjectPattern, deserializeMatchArrayPattern, deserializeMatchOrPattern, deserializeMatchAsPattern, deserializeMatchMemberPattern, deserializeMatchPatternLast, deserializeMatchObjectPatternProperty, deserializeMatchRestPattern, deserializeJSXFirst, deserializeJSXIdentifier, deserializeJSXMemberExpression, deserializeJSXNamespacedName, deserializeJSXEmptyExpression, deserializeJSXExpressionContainer, deserializeJSXSpreadChild, deserializeJSXOpeningElement, deserializeJSXClosingElement, deserializeJSXAttribute, deserializeJSXSpreadAttribute, deserializeJSXStringLiteral, deserializeJSXText, deserializeJSXElement, deserializeJSXFragment, deserializeJSXOpeningFragment, deserializeJSXClosingFragment, deserializeJSXLast, deserializeFlowFirst, deserializeExistsTypeAnnotation, deserializeEmptyTypeAnnotation, deserializeStringTypeAnnotation, deserializeNumberTypeAnnotation, deserializeStringLiteralTypeAnnotation, deserializeNumberLiteralTypeAnnotation, deserializeBigIntLiteralTypeAnnotation, deserializeBooleanTypeAnnotation, deserializeBooleanLiteralTypeAnnotation, deserializeNullLiteralTypeAnnotation, deserializeSymbolTypeAnnotation, deserializeAnyTypeAnnotation, deserializeMixedTypeAnnotation, deserializeBigIntTypeAnnotation, deserializeVoidTypeAnnotation, deserializeFunctionTypeAnnotation, deserializeHookTypeAnnotation, deserializeFunctionTypeParam, deserializeComponentTypeAnnotation, deserializeComponentTypeParameter, deserializeNullableTypeAnnotation, deserializeQualifiedTypeIdentifier, deserializeTypeofTypeAnnotation, deserializeKeyofTypeAnnotation, deserializeTypeOperator, deserializeQualifiedTypeofIdentifier, deserializeTupleTypeAnnotation, deserializeTupleTypeSpreadElement, deserializeTupleTypeLabeledElement, deserializeArrayTypeAnnotation, deserializeInferTypeAnnotation, deserializeUnionTypeAnnotation, deserializeIntersectionTypeAnnotation, deserializeGenericTypeAnnotation, deserializeIndexedAccessType, deserializeOptionalIndexedAccessType, deserializeConditionalTypeAnnotation, deserializeTypePredicate, deserializeInterfaceTypeAnnotation, deserializeTypeAlias, deserializeOpaqueType, deserializeInterfaceDeclaration, deserializeDeclareTypeAlias, deserializeDeclareOpaqueType, deserializeDeclareInterface, deserializeDeclareClass, deserializeDeclareFunction, deserializeDeclareHook, deserializeDeclareComponent, deserializeDeclareVariable, deserializeDeclareEnum, deserializeDeclareExportDeclaration, deserializeDeclareExportAllDeclaration, deserializeDeclareModule, deserializeDeclareNamespace, deserializeDeclareModuleExports, deserializeInterfaceExtends, deserializeClassImplements, deserializeTypeAnnotation, deserializeObjectTypeAnnotation, deserializeObjectTypeProperty, deserializeObjectTypeSpreadProperty, deserializeObjectTypeInternalSlot, deserializeObjectTypeCallProperty, deserializeObjectTypeIndexer, deserializeObjectTypeMappedTypeProperty, deserializeVariance, deserializeTypeParameterDeclaration, deserializeTypeParameter, deserializeTypeParameterInstantiation, deserializeTypeCastExpression, deserializeAsExpression, deserializeAsConstExpression, deserializeInferredPredicate, deserializeDeclaredPredicate, deserializeEnumDeclaration, deserializeEnumStringBody, deserializeEnumNumberBody, deserializeEnumBigIntBody, deserializeEnumBooleanBody, deserializeEnumSymbolBody, deserializeEnumDefaultedMember, deserializeEnumStringMember, deserializeEnumNumberMember, deserializeEnumBigIntMember, deserializeEnumBooleanMember, deserializeComponentParameter, deserializeFlowLast, deserializeTSFirst, deserializeTSTypeAnnotation, deserializeTSAnyKeyword, deserializeTSNumberKeyword, deserializeTSBooleanKeyword, deserializeTSStringKeyword, deserializeTSSymbolKeyword, deserializeTSVoidKeyword, deserializeTSUndefinedKeyword, deserializeTSUnknownKeyword, deserializeTSNeverKeyword, deserializeTSBigIntKeyword, deserializeTSThisType, deserializeTSLiteralType, deserializeTSIndexedAccessType, deserializeTSArrayType, deserializeTSTypeReference, deserializeTSQualifiedName, deserializeTSFunctionType, deserializeTSConstructorType, deserializeTSTypePredicate, deserializeTSTupleType, deserializeTSTypeAssertion, deserializeTSAsExpression, deserializeTSParameterProperty, deserializeTSTypeAliasDeclaration, deserializeTSInterfaceDeclaration, deserializeTSInterfaceHeritage, deserializeTSInterfaceBody, deserializeTSEnumDeclaration, deserializeTSEnumMember, deserializeTSModuleDeclaration, deserializeTSModuleBlock, deserializeTSModuleMember, deserializeTSTypeParameterDeclaration, deserializeTSTypeParameter, deserializeTSTypeParameterInstantiation, deserializeTSUnionType, deserializeTSIntersectionType, deserializeTSTypeQuery, deserializeTSConditionalType, deserializeTSTypeLiteral, deserializeTSPropertySignature, deserializeTSMethodSignature, deserializeTSIndexSignature, deserializeTSCallSignatureDeclaration, deserializeTSModifiers, deserializeTSLast, deserializeCoverFirst, deserializeCoverEmptyArgs, deserializeCoverTrailingComma, deserializeCoverInitializer, deserializeCoverRestElement, deserializeCoverTypedIdentifier, deserializeCoverLast, deserializeSHBuiltin, deserializeImplicitCheckedCast];
|
|
2581
|
+
module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeComponentDeclaration, deserializeHookDeclaration, deserializeFunctionLikeLast, deserializeStatementFirst, deserializeMatchStatement, deserializeLoopStatementFirst, deserializeWhileStatement, deserializeDoWhileStatement, deserializeForInStatement, deserializeForOfStatement, deserializeForStatement, deserializeLoopStatementLast, deserializeDebuggerStatement, deserializeEmptyStatement, deserializeBlockStatement, deserializeStaticBlock, deserializeBreakStatement, deserializeContinueStatement, deserializeThrowStatement, deserializeReturnStatement, deserializeWithStatement, deserializeSwitchStatement, deserializeLabeledStatement, deserializeExpressionStatement, deserializeTryStatement, deserializeIfStatement, deserializeStatementLast, deserializeNullLiteral, deserializeBooleanLiteral, deserializeStringLiteral, deserializeNumericLiteral, deserializeRegExpLiteral, deserializeBigIntLiteral, deserializeThisExpression, deserializeSuper, deserializeSequenceExpression, deserializeObjectExpression, deserializeArrayExpression, deserializeSpreadElement, deserializeNewExpression, deserializeYieldExpression, deserializeAwaitExpression, deserializeImportExpression, deserializeCallExpressionLikeFirst, deserializeCallExpression, deserializeOptionalCallExpression, deserializeCallExpressionLikeLast, deserializeAssignmentExpression, deserializeUnaryExpression, deserializeUpdateExpression, deserializeMemberExpressionLikeFirst, deserializeMemberExpression, deserializeOptionalMemberExpression, deserializeMemberExpressionLikeLast, deserializeLogicalExpression, deserializeConditionalExpression, deserializeBinaryExpression, deserializeDirective, deserializeDirectiveLiteral, deserializeIdentifier, deserializePrivateName, deserializeMetaProperty, deserializeSwitchCase, deserializeCatchClause, deserializeVariableDeclarator, deserializeVariableDeclaration, deserializeTemplateLiteral, deserializeTaggedTemplateExpression, deserializeTemplateElement, deserializeProperty, deserializeClassLikeFirst, deserializeClassDeclaration, deserializeClassExpression, deserializeClassLikeLast, deserializeClassBody, deserializeClassProperty, deserializeClassPrivateProperty, deserializeMethodDefinition, deserializeImportDeclaration, deserializeImportSpecifier, deserializeImportDefaultSpecifier, deserializeImportNamespaceSpecifier, deserializeImportAttribute, deserializeExportNamedDeclaration, deserializeExportSpecifier, deserializeExportNamespaceSpecifier, deserializeExportDefaultDeclaration, deserializeExportAllDeclaration, deserializePatternFirst, deserializeObjectPattern, deserializeArrayPattern, deserializeRestElement, deserializeAssignmentPattern, deserializePatternLast, deserializeMatchStatementCase, deserializeMatchExpression, deserializeMatchExpressionCase, deserializeMatchPatternFirst, deserializeMatchWildcardPattern, deserializeMatchLiteralPattern, deserializeMatchUnaryPattern, deserializeMatchIdentifierPattern, deserializeMatchBindingPattern, deserializeMatchObjectPattern, deserializeMatchArrayPattern, deserializeMatchOrPattern, deserializeMatchAsPattern, deserializeMatchMemberPattern, deserializeMatchInstancePattern, deserializeMatchPatternLast, deserializeMatchObjectPatternProperty, deserializeMatchInstanceObjectPattern, deserializeMatchRestPattern, deserializeJSXFirst, deserializeJSXIdentifier, deserializeJSXMemberExpression, deserializeJSXNamespacedName, deserializeJSXEmptyExpression, deserializeJSXExpressionContainer, deserializeJSXSpreadChild, deserializeJSXOpeningElement, deserializeJSXClosingElement, deserializeJSXAttribute, deserializeJSXSpreadAttribute, deserializeJSXStringLiteral, deserializeJSXText, deserializeJSXElement, deserializeJSXFragment, deserializeJSXOpeningFragment, deserializeJSXClosingFragment, deserializeJSXLast, deserializeFlowFirst, deserializeExistsTypeAnnotation, deserializeEmptyTypeAnnotation, deserializeStringTypeAnnotation, deserializeNumberTypeAnnotation, deserializeStringLiteralTypeAnnotation, deserializeNumberLiteralTypeAnnotation, deserializeBigIntLiteralTypeAnnotation, deserializeBooleanTypeAnnotation, deserializeBooleanLiteralTypeAnnotation, deserializeNullLiteralTypeAnnotation, deserializeSymbolTypeAnnotation, deserializeAnyTypeAnnotation, deserializeMixedTypeAnnotation, deserializeBigIntTypeAnnotation, deserializeVoidTypeAnnotation, deserializeNeverTypeAnnotation, deserializeUnknownTypeAnnotation, deserializeUndefinedTypeAnnotation, deserializeFunctionTypeAnnotation, deserializeHookTypeAnnotation, deserializeFunctionTypeParam, deserializeComponentTypeAnnotation, deserializeComponentTypeParameter, deserializeNullableTypeAnnotation, deserializeQualifiedTypeIdentifier, deserializeTypeofTypeAnnotation, deserializeKeyofTypeAnnotation, deserializeTypeOperator, deserializeQualifiedTypeofIdentifier, deserializeTupleTypeAnnotation, deserializeTupleTypeSpreadElement, deserializeTupleTypeLabeledElement, deserializeArrayTypeAnnotation, deserializeInferTypeAnnotation, deserializeUnionTypeAnnotation, deserializeIntersectionTypeAnnotation, deserializeGenericTypeAnnotation, deserializeIndexedAccessType, deserializeOptionalIndexedAccessType, deserializeConditionalTypeAnnotation, deserializeTypePredicate, deserializeInterfaceTypeAnnotation, deserializeTypeAlias, deserializeOpaqueType, deserializeInterfaceDeclaration, deserializeDeclareTypeAlias, deserializeDeclareOpaqueType, deserializeDeclareInterface, deserializeDeclareClass, deserializeDeclareFunction, deserializeDeclareHook, deserializeDeclareComponent, deserializeDeclareVariable, deserializeDeclareEnum, deserializeDeclareExportDeclaration, deserializeDeclareExportAllDeclaration, deserializeDeclareModule, deserializeDeclareNamespace, deserializeDeclareModuleExports, deserializeInterfaceExtends, deserializeClassImplements, deserializeTypeAnnotation, deserializeObjectTypeAnnotation, deserializeObjectTypeProperty, deserializeObjectTypeSpreadProperty, deserializeObjectTypeInternalSlot, deserializeObjectTypeCallProperty, deserializeObjectTypeIndexer, deserializeObjectTypeMappedTypeProperty, deserializeVariance, deserializeTypeParameterDeclaration, deserializeTypeParameter, deserializeTypeParameterInstantiation, deserializeTypeCastExpression, deserializeAsExpression, deserializeAsConstExpression, deserializeInferredPredicate, deserializeDeclaredPredicate, deserializeEnumDeclaration, deserializeEnumStringBody, deserializeEnumNumberBody, deserializeEnumBigIntBody, deserializeEnumBooleanBody, deserializeEnumSymbolBody, deserializeEnumDefaultedMember, deserializeEnumStringMember, deserializeEnumNumberMember, deserializeEnumBigIntMember, deserializeEnumBooleanMember, deserializeComponentParameter, deserializeRecordDeclaration, deserializeRecordDeclarationImplements, deserializeRecordDeclarationBody, deserializeRecordDeclarationProperty, deserializeRecordDeclarationStaticProperty, deserializeRecordExpression, deserializeRecordExpressionProperties, deserializeFlowLast, deserializeTSFirst, deserializeTSTypeAnnotation, deserializeTSAnyKeyword, deserializeTSNumberKeyword, deserializeTSBooleanKeyword, deserializeTSStringKeyword, deserializeTSSymbolKeyword, deserializeTSVoidKeyword, deserializeTSUndefinedKeyword, deserializeTSUnknownKeyword, deserializeTSNeverKeyword, deserializeTSBigIntKeyword, deserializeTSThisType, deserializeTSLiteralType, deserializeTSIndexedAccessType, deserializeTSArrayType, deserializeTSTypeReference, deserializeTSQualifiedName, deserializeTSFunctionType, deserializeTSConstructorType, deserializeTSTypePredicate, deserializeTSTupleType, deserializeTSTypeAssertion, deserializeTSAsExpression, deserializeTSParameterProperty, deserializeTSTypeAliasDeclaration, deserializeTSInterfaceDeclaration, deserializeTSInterfaceHeritage, deserializeTSInterfaceBody, deserializeTSEnumDeclaration, deserializeTSEnumMember, deserializeTSModuleDeclaration, deserializeTSModuleBlock, deserializeTSModuleMember, deserializeTSTypeParameterDeclaration, deserializeTSTypeParameter, deserializeTSTypeParameterInstantiation, deserializeTSUnionType, deserializeTSIntersectionType, deserializeTSTypeQuery, deserializeTSConditionalType, deserializeTSTypeLiteral, deserializeTSPropertySignature, deserializeTSMethodSignature, deserializeTSIndexSignature, deserializeTSCallSignatureDeclaration, deserializeTSModifiers, deserializeTSLast, deserializeCoverFirst, deserializeCoverEmptyArgs, deserializeCoverTrailingComma, deserializeCoverInitializer, deserializeCoverRestElement, deserializeCoverTypedIdentifier, deserializeCoverLast, deserializeSHBuiltin, deserializeImplicitCheckedCast];
|
|
@@ -14,5 +14,5 @@ exports.ParserOptionsKeys = void 0;
|
|
|
14
14
|
*
|
|
15
15
|
* @format
|
|
16
16
|
*/
|
|
17
|
-
const ParserOptionsKeys = new Set(['allowReturnOutsideFunction', 'babel', 'flow', 'enableExperimentalComponentSyntax', 'enableExperimentalFlowMatchSyntax', 'reactRuntimeTarget', 'sourceFilename', 'sourceType', 'tokens']);
|
|
17
|
+
const ParserOptionsKeys = new Set(['allowReturnOutsideFunction', 'babel', 'flow', 'enableExperimentalComponentSyntax', 'enableExperimentalFlowMatchSyntax', 'enableExperimentalFlowRecordSyntax', 'reactRuntimeTarget', 'sourceFilename', 'sourceType', 'tokens', 'transformOptions']);
|
|
18
18
|
exports.ParserOptionsKeys = ParserOptionsKeys;
|
|
@@ -30,6 +30,8 @@ const FlowESTreeAndBabelVisitorKeys = { ..._ESTreeVisitorKeys.default,
|
|
|
30
30
|
BigIntLiteral: [],
|
|
31
31
|
BlockStatement: ['directives', ..._ESTreeVisitorKeys.default.BlockStatement],
|
|
32
32
|
BooleanLiteral: [],
|
|
33
|
+
ClassExpression: ['superTypeParameters', ..._ESTreeVisitorKeys.default.ClassExpression],
|
|
34
|
+
ClassDeclaration: ['superTypeParameters', ..._ESTreeVisitorKeys.default.ClassDeclaration],
|
|
33
35
|
ClassMethod: ['key', 'params', 'body', 'returnType', 'typeParameters'],
|
|
34
36
|
ClassPrivateMethod: ['key', 'params', 'body', 'returnType', 'typeParameters'],
|
|
35
37
|
ClassProperty: ['key', 'value', 'typeAnnotation', 'variance'],
|
|
@@ -50,6 +52,7 @@ const FlowESTreeAndBabelVisitorKeys = { ..._ESTreeVisitorKeys.default,
|
|
|
50
52
|
RegExpLiteral: [],
|
|
51
53
|
RestElement: [..._ESTreeVisitorKeys.default.RestElement, 'typeAnnotation'],
|
|
52
54
|
StringLiteral: [],
|
|
55
|
+
TupleTypeAnnotation: ['types'],
|
|
53
56
|
CommentBlock: [],
|
|
54
57
|
CommentLine: []
|
|
55
58
|
};
|
|
@@ -480,6 +483,7 @@ function mapPropertyDefinition(node) {
|
|
|
480
483
|
function mapTypeofTypeAnnotation(node) {
|
|
481
484
|
// $FlowExpectedError[cannot-write]
|
|
482
485
|
delete node.typeArguments; // $FlowFixMe[incompatible-type]
|
|
486
|
+
// $FlowFixMe[invalid-compare]
|
|
483
487
|
|
|
484
488
|
if (node.argument.type !== 'GenericTypeAnnotation') {
|
|
485
489
|
return nodeWith(node, {
|
|
@@ -656,6 +660,7 @@ function transformNode(node) {
|
|
|
656
660
|
|
|
657
661
|
// Check if we have already processed this node.
|
|
658
662
|
// $FlowFixMe[incompatible-type]
|
|
663
|
+
// $FlowFixMe[invalid-compare]
|
|
659
664
|
if (((_node$parent = node.parent) == null ? void 0 : _node$parent.type) === 'File') {
|
|
660
665
|
return node;
|
|
661
666
|
}
|
|
@@ -819,10 +824,74 @@ function transformNode(node) {
|
|
|
819
824
|
case 'TupleTypeAnnotation':
|
|
820
825
|
{
|
|
821
826
|
// $FlowExpectedError[cannot-write]
|
|
822
|
-
delete node.inexact;
|
|
827
|
+
delete node.inexact; // $FlowExpectedError[prop-missing]
|
|
828
|
+
|
|
829
|
+
node.types = node.elementTypes; // $FlowExpectedError[cannot-write]
|
|
830
|
+
|
|
831
|
+
delete node.elementTypes;
|
|
823
832
|
return node;
|
|
824
833
|
}
|
|
825
834
|
|
|
835
|
+
case 'UnknownTypeAnnotation':
|
|
836
|
+
{
|
|
837
|
+
return {
|
|
838
|
+
type: 'GenericTypeAnnotation',
|
|
839
|
+
id: {
|
|
840
|
+
type: 'Identifier',
|
|
841
|
+
name: 'unknown',
|
|
842
|
+
optional: false,
|
|
843
|
+
typeAnnotation: null,
|
|
844
|
+
loc: node.loc,
|
|
845
|
+
range: node.range,
|
|
846
|
+
parent: EMPTY_PARENT
|
|
847
|
+
},
|
|
848
|
+
typeParameters: null,
|
|
849
|
+
loc: node.loc,
|
|
850
|
+
range: node.range,
|
|
851
|
+
parent: EMPTY_PARENT
|
|
852
|
+
};
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
case 'NeverTypeAnnotation':
|
|
856
|
+
{
|
|
857
|
+
return {
|
|
858
|
+
type: 'GenericTypeAnnotation',
|
|
859
|
+
id: {
|
|
860
|
+
type: 'Identifier',
|
|
861
|
+
name: 'never',
|
|
862
|
+
optional: false,
|
|
863
|
+
typeAnnotation: null,
|
|
864
|
+
loc: node.loc,
|
|
865
|
+
range: node.range,
|
|
866
|
+
parent: EMPTY_PARENT
|
|
867
|
+
},
|
|
868
|
+
typeParameters: null,
|
|
869
|
+
loc: node.loc,
|
|
870
|
+
range: node.range,
|
|
871
|
+
parent: EMPTY_PARENT
|
|
872
|
+
};
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
case 'UndefinedTypeAnnotation':
|
|
876
|
+
{
|
|
877
|
+
return {
|
|
878
|
+
type: 'GenericTypeAnnotation',
|
|
879
|
+
id: {
|
|
880
|
+
type: 'Identifier',
|
|
881
|
+
name: 'undefined',
|
|
882
|
+
optional: false,
|
|
883
|
+
typeAnnotation: null,
|
|
884
|
+
loc: node.loc,
|
|
885
|
+
range: node.range,
|
|
886
|
+
parent: EMPTY_PARENT
|
|
887
|
+
},
|
|
888
|
+
typeParameters: null,
|
|
889
|
+
loc: node.loc,
|
|
890
|
+
range: node.range,
|
|
891
|
+
parent: EMPTY_PARENT
|
|
892
|
+
};
|
|
893
|
+
}
|
|
894
|
+
|
|
826
895
|
case 'JSXText':
|
|
827
896
|
{
|
|
828
897
|
// $FlowExpectedError[prop-missing]
|
|
@@ -985,9 +1054,15 @@ function transformNode(node) {
|
|
|
985
1054
|
delete node.implements;
|
|
986
1055
|
}
|
|
987
1056
|
|
|
988
|
-
if (node.
|
|
1057
|
+
if (node.superTypeArguments == null) {
|
|
1058
|
+
// $FlowExpectedError[cannot-write]
|
|
1059
|
+
delete node.superTypeArguments;
|
|
1060
|
+
} else {
|
|
989
1061
|
// $FlowExpectedError[cannot-write]
|
|
990
|
-
|
|
1062
|
+
// $FlowExpectedError[prop-missing]
|
|
1063
|
+
node.superTypeParameters = node.superTypeArguments; // $FlowExpectedError[cannot-write]
|
|
1064
|
+
|
|
1065
|
+
delete node.superTypeArguments;
|
|
991
1066
|
}
|
|
992
1067
|
|
|
993
1068
|
if (node.typeParameters == null) {
|
|
@@ -1110,6 +1185,7 @@ function transformProgram(program, options) {
|
|
|
1110
1185
|
|
|
1111
1186
|
visitorKeys: FlowESTreeAndBabelVisitorKeys
|
|
1112
1187
|
}); // $FlowFixMe[incompatible-type]
|
|
1188
|
+
// $FlowFixMe[invalid-compare]
|
|
1113
1189
|
|
|
1114
1190
|
|
|
1115
1191
|
if ((resultNode == null ? void 0 : resultNode.type) === 'File') {
|
|
@@ -191,7 +191,7 @@ function mapComponentParameters(params, options) {
|
|
|
191
191
|
|
|
192
192
|
if (propsProperties.length === 0) {
|
|
193
193
|
if (refParam == null) {
|
|
194
|
-
throw new Error('
|
|
194
|
+
throw new Error('TransformComponentSyntax: Invalid state, ref should always be set at this point if props are empty');
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
const emptyParamsLoc = {
|