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.
- package/README.md +14 -26
- package/{oxidized → dist}/FlowParserNodeDeserializers.js +26 -12
- package/dist/FlowParserWASM.js +1 -0
- package/{oxidized → dist}/babel/TransformESTreeToBabel.js +11 -3
- package/{oxidized → dist}/babel/TransformESTreeToBabel.js.flow +12 -4
- package/{oxidized/oxidized-src → dist}/estree/StripFlowTypesForBabel.js +33 -18
- package/{oxidized → dist}/estree/StripFlowTypesForBabel.js.flow +40 -18
- package/{oxidized/oxidized-src → dist}/estree/TransformComponentSyntax.js +25 -12
- package/{oxidized → dist}/estree/TransformComponentSyntax.js.flow +29 -11
- package/{oxidized → dist}/generated/ESTreeVisitorKeys.js +1 -1
- package/package.json +6 -7
- package/flow_parser.js +0 -14575
- package/oxidized/FlowParserWASM.js +0 -1
- package/oxidized/estree/StripFlowTypesForBabel.js +0 -176
- package/oxidized/estree/TransformComponentSyntax.js +0 -751
- package/oxidized/oxidized-src/FlowParser.js +0 -249
- package/oxidized/oxidized-src/FlowParserDeserializer.js +0 -209
- package/oxidized/oxidized-src/FlowParserNodeDeserializers.js +0 -1767
- package/oxidized/oxidized-src/HermesParserDecodeUTF8String.js +0 -45
- package/oxidized/oxidized-src/ParserOptions.js +0 -8
- package/oxidized/oxidized-src/babel/TransformESTreeToBabel.js +0 -1055
- package/oxidized/oxidized-src/estree/StripFlowTypes.js +0 -158
- package/oxidized/oxidized-src/estree/TransformEnumSyntax.js +0 -92
- package/oxidized/oxidized-src/estree/TransformMatchSyntax.js +0 -990
- package/oxidized/oxidized-src/estree/TransformRecordSyntax.js +0 -283
- package/oxidized/oxidized-src/generated/ESTreeVisitorKeys.js +0 -234
- package/oxidized/oxidized-src/getModuleDocblock.js +0 -87
- package/oxidized/oxidized-src/index.js +0 -220
- package/oxidized/transform/SimpleTransform.js +0 -95
- package/oxidized/transform/astArrayMutationHelpers.js +0 -52
- package/oxidized/transform/astNodeMutationHelpers.js +0 -142
- package/oxidized/transform/print/comments/comments.js +0 -245
- package/oxidized/transform/print/comments/prettier/common/util.js +0 -235
- package/oxidized/transform/print/comments/prettier/language-js/comments.js +0 -663
- package/oxidized/transform/print/comments/prettier/language-js/loc.js +0 -30
- package/oxidized/transform/print/comments/prettier/language-js/printer-estree.js +0 -23
- package/oxidized/transform/print/comments/prettier/language-js/utils.js +0 -89
- package/oxidized/transform/print/comments/prettier/main/comments.js +0 -374
- package/oxidized/transform/print/comments/prettier/utils/get-last.js +0 -5
- package/oxidized/transform/print/detachedNodeTypes.js +0 -1
- package/oxidized/transform/print/print.js +0 -68
- package/oxidized/traverse/SimpleTraverser.js +0 -90
- package/oxidized/traverse/getVisitorKeys.js +0 -29
- package/oxidized/utils/Builders.js +0 -181
- package/oxidized/utils/GenID.js +0 -37
- package/oxidized/utils/createSyntaxError.js +0 -15
- package/oxidized/utils/isReservedWord.js +0 -53
- package/oxidized/utils/mutateESTreeASTForPrettier.js +0 -85
- /package/{oxidized → dist}/FlowParser.js +0 -0
- /package/{oxidized → dist}/FlowParser.js.flow +0 -0
- /package/{oxidized → dist}/FlowParserDeserializer.js +0 -0
- /package/{oxidized → dist}/FlowParserDeserializer.js.flow +0 -0
- /package/{oxidized → dist}/FlowParserNodeDeserializers.js.flow +0 -0
- /package/{oxidized → dist}/FlowParserWASM.js.flow +0 -0
- /package/{oxidized → dist}/HermesAST.js.flow +0 -0
- /package/{oxidized → dist}/HermesParserDecodeUTF8String.js +0 -0
- /package/{oxidized → dist}/HermesParserDecodeUTF8String.js.flow +0 -0
- /package/{oxidized → dist}/ParserOptions.js +0 -0
- /package/{oxidized → dist}/ParserOptions.js.flow +0 -0
- /package/{oxidized → dist}/estree/StripFlowTypes.js +0 -0
- /package/{oxidized → dist}/estree/StripFlowTypes.js.flow +0 -0
- /package/{oxidized → dist}/estree/TransformEnumSyntax.js +0 -0
- /package/{oxidized → dist}/estree/TransformEnumSyntax.js.flow +0 -0
- /package/{oxidized → dist}/estree/TransformMatchSyntax.js +0 -0
- /package/{oxidized → dist}/estree/TransformMatchSyntax.js.flow +0 -0
- /package/{oxidized → dist}/estree/TransformRecordSyntax.js +0 -0
- /package/{oxidized → dist}/estree/TransformRecordSyntax.js.flow +0 -0
- /package/{oxidized → dist}/generated/ESTreeVisitorKeys.js.flow +0 -0
- /package/{oxidized → dist}/getModuleDocblock.js +0 -0
- /package/{oxidized → dist}/getModuleDocblock.js.flow +0 -0
- /package/{oxidized → dist}/index.js +0 -0
- /package/{oxidized → dist}/index.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/SimpleTransform.js +0 -0
- /package/{oxidized → dist}/transform/SimpleTransform.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/astArrayMutationHelpers.js +0 -0
- /package/{oxidized → dist}/transform/astArrayMutationHelpers.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/astNodeMutationHelpers.js +0 -0
- /package/{oxidized → dist}/transform/astNodeMutationHelpers.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/comments.js +0 -0
- /package/{oxidized → dist}/transform/print/comments/comments.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/common/util.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/comments.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/loc.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/printer-estree.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/utils.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/main/comments.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/utils/get-last.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/detachedNodeTypes.js +0 -0
- /package/{oxidized → dist}/transform/print/detachedNodeTypes.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/print.js +0 -0
- /package/{oxidized → dist}/transform/print/print.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/traverse/SimpleTraverser.js +0 -0
- /package/{oxidized → dist}/traverse/SimpleTraverser.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/traverse/getVisitorKeys.js +0 -0
- /package/{oxidized → dist}/traverse/getVisitorKeys.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/Builders.js +0 -0
- /package/{oxidized → dist}/utils/Builders.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/GenID.js +0 -0
- /package/{oxidized → dist}/utils/GenID.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/createSyntaxError.js +0 -0
- /package/{oxidized → dist}/utils/createSyntaxError.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/isReservedWord.js +0 -0
- /package/{oxidized → dist}/utils/isReservedWord.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/mutateESTreeASTForPrettier.js +0 -0
- /package/{oxidized → dist}/utils/mutateESTreeASTForPrettier.js.flow +0 -0
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.transformProgram = transformProgram;
|
|
7
|
-
|
|
8
|
-
var _flowEstree = require("flow-estree");
|
|
9
|
-
|
|
10
|
-
var _SimpleTransform = require("../transform/SimpleTransform");
|
|
11
|
-
|
|
12
|
-
var _astNodeMutationHelpers = require("../transform/astNodeMutationHelpers");
|
|
13
|
-
|
|
14
|
-
var _Builders = require("../utils/Builders");
|
|
15
|
-
|
|
16
|
-
var _isReservedWord = _interopRequireDefault(require("../utils/isReservedWord"));
|
|
17
|
-
|
|
18
|
-
var _GenID = _interopRequireDefault(require("../utils/GenID"));
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) {
|
|
21
|
-
return obj && obj.__esModule ? obj : {
|
|
22
|
-
default: obj
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function nameOfKey(key) {
|
|
27
|
-
switch (key.type) {
|
|
28
|
-
case 'Identifier':
|
|
29
|
-
return key.name;
|
|
30
|
-
|
|
31
|
-
case 'Literal':
|
|
32
|
-
if ((0, _flowEstree.isBigIntLiteral)(key)) {
|
|
33
|
-
return key.bigint;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return String(key.value);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function mapRecordDeclaration(genID, node) {
|
|
41
|
-
const ownProperties = [];
|
|
42
|
-
const staticProperties = [];
|
|
43
|
-
const methods = [];
|
|
44
|
-
const staticMethods = [];
|
|
45
|
-
|
|
46
|
-
for (const element of node.body.elements) {
|
|
47
|
-
switch (element.type) {
|
|
48
|
-
case 'RecordDeclarationProperty':
|
|
49
|
-
ownProperties.push(element);
|
|
50
|
-
break;
|
|
51
|
-
|
|
52
|
-
case 'RecordDeclarationStaticProperty':
|
|
53
|
-
staticProperties.push(element);
|
|
54
|
-
break;
|
|
55
|
-
|
|
56
|
-
case 'MethodDefinition':
|
|
57
|
-
if (element.static) {
|
|
58
|
-
staticMethods.push(element);
|
|
59
|
-
} else {
|
|
60
|
-
methods.push(element);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const reservedPropNames = new Map();
|
|
68
|
-
const constructorParam = {
|
|
69
|
-
type: 'ObjectPattern',
|
|
70
|
-
properties: ownProperties.map(prop => {
|
|
71
|
-
const {
|
|
72
|
-
key,
|
|
73
|
-
defaultValue
|
|
74
|
-
} = prop;
|
|
75
|
-
const keyName = nameOfKey(key);
|
|
76
|
-
|
|
77
|
-
const getValue = bindingIdent => defaultValue != null ? {
|
|
78
|
-
type: 'AssignmentPattern',
|
|
79
|
-
left: bindingIdent,
|
|
80
|
-
right: (0, _astNodeMutationHelpers.deepCloneNode)(defaultValue),
|
|
81
|
-
...(0, _Builders.etc)()
|
|
82
|
-
} : bindingIdent;
|
|
83
|
-
|
|
84
|
-
switch (key.type) {
|
|
85
|
-
case 'Identifier':
|
|
86
|
-
{
|
|
87
|
-
const needsNewBinding = (0, _isReservedWord.default)(keyName);
|
|
88
|
-
const bindingName = needsNewBinding ? genID.id() : keyName;
|
|
89
|
-
const bindingIdent = (0, _Builders.ident)(bindingName);
|
|
90
|
-
|
|
91
|
-
if (needsNewBinding) {
|
|
92
|
-
reservedPropNames.set(keyName, bindingName);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (needsNewBinding) {
|
|
96
|
-
return {
|
|
97
|
-
type: 'Property',
|
|
98
|
-
kind: 'init',
|
|
99
|
-
key: (0, _astNodeMutationHelpers.shallowCloneNode)(key),
|
|
100
|
-
value: getValue(bindingIdent),
|
|
101
|
-
shorthand: false,
|
|
102
|
-
method: false,
|
|
103
|
-
computed: false,
|
|
104
|
-
...(0, _Builders.etc)(),
|
|
105
|
-
parent: _Builders.EMPTY_PARENT
|
|
106
|
-
};
|
|
107
|
-
} else {
|
|
108
|
-
return {
|
|
109
|
-
type: 'Property',
|
|
110
|
-
kind: 'init',
|
|
111
|
-
key: (0, _astNodeMutationHelpers.shallowCloneNode)(key),
|
|
112
|
-
value: getValue(bindingIdent),
|
|
113
|
-
shorthand: true,
|
|
114
|
-
method: false,
|
|
115
|
-
computed: false,
|
|
116
|
-
...(0, _Builders.etc)(),
|
|
117
|
-
parent: _Builders.EMPTY_PARENT
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
case 'Literal':
|
|
123
|
-
{
|
|
124
|
-
const bindingName = genID.id();
|
|
125
|
-
const bindingIdent = (0, _Builders.ident)(bindingName);
|
|
126
|
-
reservedPropNames.set(keyName, bindingName);
|
|
127
|
-
return {
|
|
128
|
-
type: 'Property',
|
|
129
|
-
kind: 'init',
|
|
130
|
-
key: (0, _astNodeMutationHelpers.shallowCloneNode)(key),
|
|
131
|
-
value: getValue(bindingIdent),
|
|
132
|
-
shorthand: false,
|
|
133
|
-
method: false,
|
|
134
|
-
computed: false,
|
|
135
|
-
...(0, _Builders.etc)(),
|
|
136
|
-
parent: _Builders.EMPTY_PARENT
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}),
|
|
141
|
-
typeAnnotation: null,
|
|
142
|
-
...(0, _Builders.etc)()
|
|
143
|
-
};
|
|
144
|
-
const constructor = {
|
|
145
|
-
type: 'MethodDefinition',
|
|
146
|
-
key: (0, _Builders.ident)('constructor'),
|
|
147
|
-
kind: 'constructor',
|
|
148
|
-
computed: false,
|
|
149
|
-
static: false,
|
|
150
|
-
decorators: [],
|
|
151
|
-
value: {
|
|
152
|
-
type: 'FunctionExpression',
|
|
153
|
-
id: null,
|
|
154
|
-
params: [constructorParam],
|
|
155
|
-
body: {
|
|
156
|
-
type: 'BlockStatement',
|
|
157
|
-
body: ownProperties.map(({
|
|
158
|
-
key
|
|
159
|
-
}) => {
|
|
160
|
-
var _reservedPropNames$ge;
|
|
161
|
-
|
|
162
|
-
const keyName = nameOfKey(key);
|
|
163
|
-
const bindingIdent = (0, _Builders.ident)((_reservedPropNames$ge = reservedPropNames.get(keyName)) != null ? _reservedPropNames$ge : keyName);
|
|
164
|
-
const object = {
|
|
165
|
-
type: 'ThisExpression',
|
|
166
|
-
...(0, _Builders.etc)()
|
|
167
|
-
};
|
|
168
|
-
const memberExpression = key.type === 'Identifier' ? {
|
|
169
|
-
type: 'MemberExpression',
|
|
170
|
-
object,
|
|
171
|
-
property: (0, _astNodeMutationHelpers.shallowCloneNode)(key),
|
|
172
|
-
computed: false,
|
|
173
|
-
optional: false,
|
|
174
|
-
...(0, _Builders.etc)()
|
|
175
|
-
} : {
|
|
176
|
-
type: 'MemberExpression',
|
|
177
|
-
object,
|
|
178
|
-
property: (0, _astNodeMutationHelpers.shallowCloneNode)(key),
|
|
179
|
-
computed: true,
|
|
180
|
-
optional: false,
|
|
181
|
-
...(0, _Builders.etc)()
|
|
182
|
-
};
|
|
183
|
-
return {
|
|
184
|
-
type: 'ExpressionStatement',
|
|
185
|
-
expression: {
|
|
186
|
-
type: 'AssignmentExpression',
|
|
187
|
-
operator: '=',
|
|
188
|
-
left: memberExpression,
|
|
189
|
-
right: bindingIdent,
|
|
190
|
-
...(0, _Builders.etc)()
|
|
191
|
-
},
|
|
192
|
-
directive: null,
|
|
193
|
-
...(0, _Builders.etc)()
|
|
194
|
-
};
|
|
195
|
-
}),
|
|
196
|
-
...(0, _Builders.etc)()
|
|
197
|
-
},
|
|
198
|
-
generator: false,
|
|
199
|
-
async: false,
|
|
200
|
-
predicate: null,
|
|
201
|
-
returnType: null,
|
|
202
|
-
typeParameters: null,
|
|
203
|
-
...(0, _Builders.etc)()
|
|
204
|
-
},
|
|
205
|
-
...(0, _Builders.etc)(),
|
|
206
|
-
parent: _Builders.EMPTY_PARENT
|
|
207
|
-
};
|
|
208
|
-
const classStaticProperties = staticProperties.map(prop => ({
|
|
209
|
-
type: 'PropertyDefinition',
|
|
210
|
-
key: (0, _astNodeMutationHelpers.shallowCloneNode)(prop.key),
|
|
211
|
-
value: (0, _astNodeMutationHelpers.deepCloneNode)(prop.value),
|
|
212
|
-
static: true,
|
|
213
|
-
decorators: [],
|
|
214
|
-
typeAnnotation: null,
|
|
215
|
-
variance: null,
|
|
216
|
-
computed: false,
|
|
217
|
-
declare: false,
|
|
218
|
-
optional: false,
|
|
219
|
-
...(0, _Builders.etc)(),
|
|
220
|
-
parent: _Builders.EMPTY_PARENT
|
|
221
|
-
}));
|
|
222
|
-
const classBodyElements = [constructor, ...methods, ...classStaticProperties, ...staticMethods];
|
|
223
|
-
return {
|
|
224
|
-
type: 'ClassDeclaration',
|
|
225
|
-
id: (0, _astNodeMutationHelpers.shallowCloneNode)(node.id),
|
|
226
|
-
body: {
|
|
227
|
-
type: 'ClassBody',
|
|
228
|
-
body: classBodyElements,
|
|
229
|
-
...(0, _Builders.etc)(),
|
|
230
|
-
parent: _Builders.EMPTY_PARENT
|
|
231
|
-
},
|
|
232
|
-
superClass: null,
|
|
233
|
-
typeParameters: null,
|
|
234
|
-
superTypeArguments: null,
|
|
235
|
-
implements: [],
|
|
236
|
-
decorators: [],
|
|
237
|
-
...(0, _Builders.etc)()
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
function mapRecordExpression(node) {
|
|
242
|
-
const obj = {
|
|
243
|
-
type: 'ObjectExpression',
|
|
244
|
-
properties: node.properties.properties,
|
|
245
|
-
...(0, _Builders.etc)()
|
|
246
|
-
};
|
|
247
|
-
return {
|
|
248
|
-
type: 'NewExpression',
|
|
249
|
-
callee: node.recordConstructor,
|
|
250
|
-
arguments: [obj],
|
|
251
|
-
typeArguments: null,
|
|
252
|
-
...(0, _Builders.etc)()
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
function transformProgram(program, _options) {
|
|
257
|
-
const genID = new _GenID.default('r');
|
|
258
|
-
return _SimpleTransform.SimpleTransform.transformProgram(program, {
|
|
259
|
-
transform(node) {
|
|
260
|
-
switch (node.type) {
|
|
261
|
-
case 'RecordDeclaration':
|
|
262
|
-
{
|
|
263
|
-
return mapRecordDeclaration(genID, node);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
case 'RecordExpression':
|
|
267
|
-
{
|
|
268
|
-
return mapRecordExpression(node);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
case 'Identifier':
|
|
272
|
-
{
|
|
273
|
-
genID.addUsage(node.name);
|
|
274
|
-
return node;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
default:
|
|
278
|
-
return node;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
});
|
|
283
|
-
}
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
module.exports = {
|
|
4
|
-
AbstractMethodDefinition: ['key', 'value'],
|
|
5
|
-
AbstractPropertyDefinition: ['key', 'value', 'variance'],
|
|
6
|
-
AnyTypeAnnotation: [],
|
|
7
|
-
ArrayExpression: ['elements'],
|
|
8
|
-
ArrayPattern: ['elements', 'typeAnnotation'],
|
|
9
|
-
ArrayTypeAnnotation: ['elementType'],
|
|
10
|
-
ArrowFunctionExpression: ['params', 'body', 'typeParameters', 'returnType', 'predicate'],
|
|
11
|
-
AsConstExpression: ['expression'],
|
|
12
|
-
AsExpression: ['expression', 'typeAnnotation'],
|
|
13
|
-
AssignmentExpression: ['left', 'right'],
|
|
14
|
-
AssignmentPattern: ['left', 'right'],
|
|
15
|
-
AwaitExpression: ['argument'],
|
|
16
|
-
BigIntLiteralTypeAnnotation: [],
|
|
17
|
-
BigIntTypeAnnotation: [],
|
|
18
|
-
BinaryExpression: ['left', 'right'],
|
|
19
|
-
BlockStatement: ['body'],
|
|
20
|
-
BooleanLiteralTypeAnnotation: [],
|
|
21
|
-
BooleanTypeAnnotation: [],
|
|
22
|
-
BreakStatement: ['label'],
|
|
23
|
-
CallExpression: ['callee', 'typeArguments', 'arguments'],
|
|
24
|
-
CatchClause: ['param', 'body'],
|
|
25
|
-
ChainExpression: ['expression'],
|
|
26
|
-
ClassBody: ['body'],
|
|
27
|
-
ClassDeclaration: ['id', 'typeParameters', 'superClass', 'superTypeArguments', 'implements', 'decorators', 'body'],
|
|
28
|
-
ClassExpression: ['id', 'typeParameters', 'superClass', 'superTypeArguments', 'implements', 'decorators', 'body'],
|
|
29
|
-
ClassImplements: ['id', 'typeParameters'],
|
|
30
|
-
ComponentDeclaration: ['id', 'params', 'body', 'typeParameters', 'rendersType'],
|
|
31
|
-
ComponentParameter: ['name', 'local'],
|
|
32
|
-
ComponentTypeAnnotation: ['params', 'rest', 'typeParameters', 'rendersType'],
|
|
33
|
-
ComponentTypeParameter: ['name', 'typeAnnotation'],
|
|
34
|
-
ConditionalExpression: ['test', 'consequent', 'alternate'],
|
|
35
|
-
ConditionalTypeAnnotation: ['checkType', 'extendsType', 'trueType', 'falseType'],
|
|
36
|
-
ConstructorTypeAnnotation: ['params', 'returnType', 'rest', 'typeParameters'],
|
|
37
|
-
ContinueStatement: ['label'],
|
|
38
|
-
DebuggerStatement: [],
|
|
39
|
-
DeclareClass: ['id', 'typeParameters', 'extends', 'implements', 'mixins', 'body'],
|
|
40
|
-
DeclareClassExtendsCall: ['callee', 'argument'],
|
|
41
|
-
DeclareComponent: ['id', 'params', 'rest', 'typeParameters', 'rendersType'],
|
|
42
|
-
DeclareEnum: ['id', 'body'],
|
|
43
|
-
DeclareExportAllDeclaration: ['source'],
|
|
44
|
-
DeclareExportDeclaration: ['declaration', 'specifiers', 'source'],
|
|
45
|
-
DeclareFunction: ['id', 'predicate'],
|
|
46
|
-
DeclareHook: ['id'],
|
|
47
|
-
DeclareInterface: ['id', 'typeParameters', 'extends', 'body'],
|
|
48
|
-
DeclareMethodDefinition: ['key', 'value'],
|
|
49
|
-
DeclareModule: ['id', 'body'],
|
|
50
|
-
DeclareModuleExports: ['typeAnnotation'],
|
|
51
|
-
DeclareNamespace: ['id', 'body'],
|
|
52
|
-
DeclareOpaqueType: ['id', 'typeParameters', 'impltype', 'lowerBound', 'upperBound', 'supertype'],
|
|
53
|
-
DeclareTypeAlias: ['id', 'typeParameters', 'right'],
|
|
54
|
-
DeclareVariable: ['id'],
|
|
55
|
-
DeclaredPredicate: ['value'],
|
|
56
|
-
Decorator: ['expression'],
|
|
57
|
-
DoWhileStatement: ['body', 'test'],
|
|
58
|
-
EmptyStatement: [],
|
|
59
|
-
EmptyTypeAnnotation: [],
|
|
60
|
-
EnumBigIntBody: ['members'],
|
|
61
|
-
EnumBigIntMember: ['id', 'init'],
|
|
62
|
-
EnumBody: ['members'],
|
|
63
|
-
EnumBooleanBody: ['members'],
|
|
64
|
-
EnumBooleanMember: ['id', 'init'],
|
|
65
|
-
EnumDeclaration: ['id', 'body'],
|
|
66
|
-
EnumDefaultedMember: ['id'],
|
|
67
|
-
EnumNumberBody: ['members'],
|
|
68
|
-
EnumNumberMember: ['id', 'init'],
|
|
69
|
-
EnumStringBody: ['members'],
|
|
70
|
-
EnumStringMember: ['id', 'init'],
|
|
71
|
-
EnumSymbolBody: ['members'],
|
|
72
|
-
ExistsTypeAnnotation: [],
|
|
73
|
-
ExportAllDeclaration: ['exported', 'source'],
|
|
74
|
-
ExportAssignment: ['expression'],
|
|
75
|
-
ExportDefaultDeclaration: ['declaration'],
|
|
76
|
-
ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],
|
|
77
|
-
ExportNamespaceSpecifier: ['exported'],
|
|
78
|
-
ExportSpecifier: ['exported', 'local'],
|
|
79
|
-
ExpressionStatement: ['expression'],
|
|
80
|
-
ExternalModuleReference: ['expression'],
|
|
81
|
-
ForInStatement: ['left', 'right', 'body'],
|
|
82
|
-
ForOfStatement: ['left', 'right', 'body'],
|
|
83
|
-
ForStatement: ['init', 'test', 'update', 'body'],
|
|
84
|
-
FunctionDeclaration: ['id', 'params', 'body', 'typeParameters', 'returnType', 'predicate'],
|
|
85
|
-
FunctionExpression: ['id', 'params', 'body', 'typeParameters', 'returnType', 'predicate'],
|
|
86
|
-
FunctionTypeAnnotation: ['params', 'this', 'returnType', 'rest', 'typeParameters'],
|
|
87
|
-
FunctionTypeParam: ['name', 'typeAnnotation'],
|
|
88
|
-
GenericTypeAnnotation: ['id', 'typeParameters'],
|
|
89
|
-
HookDeclaration: ['id', 'params', 'body', 'typeParameters', 'returnType'],
|
|
90
|
-
HookTypeAnnotation: ['params', 'returnType', 'rest', 'typeParameters'],
|
|
91
|
-
Identifier: ['typeAnnotation'],
|
|
92
|
-
IfStatement: ['test', 'consequent', 'alternate'],
|
|
93
|
-
ImportAttribute: ['key', 'value'],
|
|
94
|
-
ImportDeclaration: ['specifiers', 'source', 'attributes'],
|
|
95
|
-
ImportDefaultSpecifier: ['local'],
|
|
96
|
-
ImportEqualsDeclaration: ['id', 'moduleReference'],
|
|
97
|
-
ImportExpression: ['source', 'options'],
|
|
98
|
-
ImportNamespaceSpecifier: ['local'],
|
|
99
|
-
ImportSpecifier: ['imported', 'local'],
|
|
100
|
-
ImportType: ['argument'],
|
|
101
|
-
IndexedAccessType: ['objectType', 'indexType'],
|
|
102
|
-
InferTypeAnnotation: ['typeParameter'],
|
|
103
|
-
InferredPredicate: [],
|
|
104
|
-
InterfaceDeclaration: ['id', 'typeParameters', 'extends', 'body'],
|
|
105
|
-
InterfaceExtends: ['id', 'typeParameters'],
|
|
106
|
-
InterfaceTypeAnnotation: ['extends', 'body'],
|
|
107
|
-
InterpreterDirective: [],
|
|
108
|
-
IntersectionTypeAnnotation: ['types'],
|
|
109
|
-
JSXAttribute: ['name', 'value'],
|
|
110
|
-
JSXClosingElement: ['name'],
|
|
111
|
-
JSXClosingFragment: [],
|
|
112
|
-
JSXElement: ['openingElement', 'children', 'closingElement'],
|
|
113
|
-
JSXEmptyExpression: [],
|
|
114
|
-
JSXExpressionContainer: ['expression'],
|
|
115
|
-
JSXFragment: ['openingFragment', 'children', 'closingFragment'],
|
|
116
|
-
JSXIdentifier: [],
|
|
117
|
-
JSXMemberExpression: ['object', 'property'],
|
|
118
|
-
JSXNamespacedName: ['namespace', 'name'],
|
|
119
|
-
JSXOpeningElement: ['name', 'attributes', 'typeArguments'],
|
|
120
|
-
JSXOpeningFragment: [],
|
|
121
|
-
JSXSpreadAttribute: ['argument'],
|
|
122
|
-
JSXSpreadChild: ['expression'],
|
|
123
|
-
JSXText: [],
|
|
124
|
-
KeyofTypeAnnotation: ['argument'],
|
|
125
|
-
LabeledStatement: ['label', 'body'],
|
|
126
|
-
LogicalExpression: ['left', 'right'],
|
|
127
|
-
MatchArrayPattern: ['elements', 'rest'],
|
|
128
|
-
MatchAsPattern: ['pattern', 'target'],
|
|
129
|
-
MatchBindingPattern: ['id'],
|
|
130
|
-
MatchExpression: ['argument', 'cases'],
|
|
131
|
-
MatchExpressionCase: ['pattern', 'body', 'guard'],
|
|
132
|
-
MatchIdentifierPattern: ['id'],
|
|
133
|
-
MatchInstanceObjectPattern: ['properties', 'rest'],
|
|
134
|
-
MatchInstancePattern: ['targetConstructor', 'properties'],
|
|
135
|
-
MatchLiteralPattern: ['literal'],
|
|
136
|
-
MatchMemberPattern: ['base', 'property'],
|
|
137
|
-
MatchObjectPattern: ['properties', 'rest'],
|
|
138
|
-
MatchObjectPatternProperty: ['key', 'pattern'],
|
|
139
|
-
MatchOrPattern: ['patterns'],
|
|
140
|
-
MatchRestPattern: ['argument'],
|
|
141
|
-
MatchStatement: ['argument', 'cases'],
|
|
142
|
-
MatchStatementCase: ['pattern', 'body', 'guard'],
|
|
143
|
-
MatchUnaryPattern: ['argument'],
|
|
144
|
-
MatchWildcardPattern: [],
|
|
145
|
-
MemberExpression: ['object', 'property'],
|
|
146
|
-
MetaProperty: ['meta', 'property'],
|
|
147
|
-
MethodDefinition: ['key', 'value', 'decorators'],
|
|
148
|
-
MixedTypeAnnotation: [],
|
|
149
|
-
NamespaceExportDeclaration: ['id'],
|
|
150
|
-
NeverTypeAnnotation: [],
|
|
151
|
-
NewExpression: ['callee', 'typeArguments', 'arguments'],
|
|
152
|
-
NonNullExpression: ['argument'],
|
|
153
|
-
NullLiteralTypeAnnotation: [],
|
|
154
|
-
NullableTypeAnnotation: ['typeAnnotation'],
|
|
155
|
-
NumberLiteralTypeAnnotation: [],
|
|
156
|
-
NumberTypeAnnotation: [],
|
|
157
|
-
ObjectExpression: ['properties'],
|
|
158
|
-
ObjectPattern: ['properties', 'typeAnnotation'],
|
|
159
|
-
ObjectTypeAnnotation: ['properties', 'indexers', 'callProperties', 'internalSlots'],
|
|
160
|
-
ObjectTypeCallProperty: ['value'],
|
|
161
|
-
ObjectTypeIndexer: ['id', 'key', 'value', 'variance'],
|
|
162
|
-
ObjectTypeInternalSlot: ['id', 'value'],
|
|
163
|
-
ObjectTypeMappedTypeProperty: ['keyTparam', 'propType', 'sourceType', 'variance'],
|
|
164
|
-
ObjectTypePrivateField: ['key'],
|
|
165
|
-
ObjectTypeProperty: ['key', 'value', 'variance'],
|
|
166
|
-
ObjectTypeSpreadProperty: ['argument'],
|
|
167
|
-
OpaqueType: ['id', 'typeParameters', 'impltype', 'lowerBound', 'upperBound', 'supertype'],
|
|
168
|
-
OptionalIndexedAccessType: ['objectType', 'indexType'],
|
|
169
|
-
ParameterProperty: ['key', 'value', 'typeAnnotation', 'variance', 'decorators'],
|
|
170
|
-
PrivateIdentifier: [],
|
|
171
|
-
Program: ['body'],
|
|
172
|
-
Property: ['key', 'value'],
|
|
173
|
-
PropertyDefinition: ['key', 'value', 'decorators', 'variance', 'typeAnnotation'],
|
|
174
|
-
QualifiedTypeIdentifier: ['qualification', 'id'],
|
|
175
|
-
QualifiedTypeofIdentifier: ['qualification', 'id'],
|
|
176
|
-
RecordDeclaration: ['id', 'typeParameters', 'implements', 'body'],
|
|
177
|
-
RecordDeclarationBody: ['elements'],
|
|
178
|
-
RecordDeclarationImplements: ['id', 'typeArguments'],
|
|
179
|
-
RecordDeclarationProperty: ['key', 'typeAnnotation', 'defaultValue'],
|
|
180
|
-
RecordDeclarationStaticProperty: ['key', 'typeAnnotation', 'value'],
|
|
181
|
-
RecordExpression: ['recordConstructor', 'typeArguments', 'properties'],
|
|
182
|
-
RecordExpressionProperties: ['properties'],
|
|
183
|
-
RendersMaybeType: ['argument'],
|
|
184
|
-
RendersStarType: ['argument'],
|
|
185
|
-
RendersType: ['argument'],
|
|
186
|
-
RestElement: ['argument'],
|
|
187
|
-
ReturnStatement: ['argument'],
|
|
188
|
-
SatisfiesExpression: ['expression', 'typeAnnotation'],
|
|
189
|
-
SequenceExpression: ['expressions'],
|
|
190
|
-
SpreadElement: ['argument'],
|
|
191
|
-
StaticBlock: ['body'],
|
|
192
|
-
StringLiteralTypeAnnotation: [],
|
|
193
|
-
StringTypeAnnotation: [],
|
|
194
|
-
Super: [],
|
|
195
|
-
SwitchCase: ['test', 'consequent'],
|
|
196
|
-
SwitchStatement: ['discriminant', 'cases'],
|
|
197
|
-
SymbolTypeAnnotation: [],
|
|
198
|
-
TaggedTemplateExpression: ['tag', 'quasi'],
|
|
199
|
-
TemplateElement: [],
|
|
200
|
-
TemplateLiteral: ['quasis', 'expressions'],
|
|
201
|
-
TemplateLiteralTypeAnnotation: ['quasis', 'types'],
|
|
202
|
-
ThisExpression: [],
|
|
203
|
-
ThisTypeAnnotation: [],
|
|
204
|
-
ThrowStatement: ['argument'],
|
|
205
|
-
TryStatement: ['block', 'handler', 'finalizer'],
|
|
206
|
-
TupleTypeAnnotation: ['elementTypes'],
|
|
207
|
-
TupleTypeElement: ['elementType'],
|
|
208
|
-
TupleTypeLabeledElement: ['label', 'elementType', 'variance'],
|
|
209
|
-
TupleTypeSpreadElement: ['label', 'typeAnnotation'],
|
|
210
|
-
TypeAlias: ['id', 'typeParameters', 'right'],
|
|
211
|
-
TypeAnnotation: ['typeAnnotation'],
|
|
212
|
-
TypeCastExpression: ['expression', 'typeAnnotation'],
|
|
213
|
-
TypeOperator: ['typeAnnotation'],
|
|
214
|
-
TypeParameter: ['bound', 'variance', 'default'],
|
|
215
|
-
TypeParameterDeclaration: ['params'],
|
|
216
|
-
TypeParameterInstantiation: ['params'],
|
|
217
|
-
TypePredicate: ['parameterName', 'typeAnnotation'],
|
|
218
|
-
TypeofTypeAnnotation: ['argument', 'typeArguments'],
|
|
219
|
-
UnaryExpression: ['argument'],
|
|
220
|
-
UndefinedTypeAnnotation: [],
|
|
221
|
-
UnionTypeAnnotation: ['types'],
|
|
222
|
-
UnknownTypeAnnotation: [],
|
|
223
|
-
UpdateExpression: ['argument'],
|
|
224
|
-
VariableDeclaration: ['declarations'],
|
|
225
|
-
VariableDeclarator: ['id', 'init'],
|
|
226
|
-
Variance: [],
|
|
227
|
-
VoidTypeAnnotation: [],
|
|
228
|
-
WhileStatement: ['test', 'body'],
|
|
229
|
-
WithStatement: ['object', 'body'],
|
|
230
|
-
YieldExpression: ['argument'],
|
|
231
|
-
OptionalMemberExpression: ['object', 'property'],
|
|
232
|
-
OptionalCallExpression: ['callee', 'typeArguments', 'arguments'],
|
|
233
|
-
Literal: []
|
|
234
|
-
};
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getModuleDocblock = getModuleDocblock;
|
|
7
|
-
exports.parseDocblockString = parseDocblockString;
|
|
8
|
-
const DIRECTIVE_REGEX = /^\s*@([a-zA-Z0-9_-]+)( +.+)?$/;
|
|
9
|
-
|
|
10
|
-
function parseDocblockString(docblock) {
|
|
11
|
-
const directiveLines = docblock.split('\n').map(line => line.trimStart().replace(/^\* ?/, '').trim()).filter(line => line.startsWith('@'));
|
|
12
|
-
const directives = Object.create(null);
|
|
13
|
-
|
|
14
|
-
for (const line of directiveLines) {
|
|
15
|
-
var _match$;
|
|
16
|
-
|
|
17
|
-
const match = DIRECTIVE_REGEX.exec(line);
|
|
18
|
-
|
|
19
|
-
if (match == null) {
|
|
20
|
-
continue;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const name = match[1];
|
|
24
|
-
const value = ((_match$ = match[2]) != null ? _match$ : '').trim();
|
|
25
|
-
|
|
26
|
-
if (directives[name]) {
|
|
27
|
-
directives[name].push(value);
|
|
28
|
-
} else {
|
|
29
|
-
directives[name] = [value];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return directives;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function getModuleDocblock(hermesProgram) {
|
|
37
|
-
const docblockNode = (() => {
|
|
38
|
-
if (hermesProgram.type !== 'Program') {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const program = hermesProgram;
|
|
43
|
-
|
|
44
|
-
if (program.comments.length === 0) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const firstComment = (() => {
|
|
49
|
-
const first = program.comments[0];
|
|
50
|
-
|
|
51
|
-
if (first.type === 'Block') {
|
|
52
|
-
return first;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (program.comments.length === 1) {
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const second = program.comments[1];
|
|
60
|
-
|
|
61
|
-
if (first.type === 'Line' && first.range[0] === 0 && second.type === 'Block') {
|
|
62
|
-
return second;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return null;
|
|
66
|
-
})();
|
|
67
|
-
|
|
68
|
-
if (firstComment == null) {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (program.body.length > 0 && program.body[0].range[0] < firstComment.range[0]) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return firstComment;
|
|
77
|
-
})();
|
|
78
|
-
|
|
79
|
-
if (docblockNode == null) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return {
|
|
84
|
-
directives: parseDocblockString(docblockNode.value),
|
|
85
|
-
comment: docblockNode
|
|
86
|
-
};
|
|
87
|
-
}
|