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,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
- }