hermes-parser 0.33.3 → 0.35.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/dist/HermesParserNodeDeserializers.js +18 -5
- package/dist/HermesParserWASM.js +1 -1
- package/dist/babel/TransformESTreeToBabel.js +2 -2
- package/dist/babel/TransformESTreeToBabel.js.flow +2 -2
- package/dist/estree/TransformComponentSyntax.js +6 -2
- package/dist/estree/TransformComponentSyntax.js.flow +2 -2
- package/dist/estree/TransformRecordSyntax.js +2 -0
- package/dist/estree/TransformRecordSyntax.js.flow +2 -0
- package/dist/generated/ESTreeVisitorKeys.js +4 -3
- package/dist/generated/ParserVisitorKeys.js +9 -2
- package/dist/src/HermesParserNodeDeserializers.js +18 -5
- package/dist/src/babel/TransformESTreeToBabel.js +2 -2
- package/dist/src/estree/TransformComponentSyntax.js +6 -2
- package/dist/src/estree/TransformRecordSyntax.js +2 -0
- package/dist/src/generated/ESTreeVisitorKeys.js +4 -3
- package/dist/src/generated/ParserVisitorKeys.js +9 -2
- package/package.json +2 -2
|
@@ -1115,9 +1115,9 @@ function transformNode(node) {
|
|
|
1115
1115
|
|
|
1116
1116
|
case 'ImportDeclaration':
|
|
1117
1117
|
{
|
|
1118
|
-
if (node.
|
|
1118
|
+
if (node.attributes == null || node.attributes.length === 0) {
|
|
1119
1119
|
// $FlowExpectedError[cannot-write]
|
|
1120
|
-
delete node.
|
|
1120
|
+
delete node.attributes;
|
|
1121
1121
|
}
|
|
1122
1122
|
|
|
1123
1123
|
return node;
|
|
@@ -1278,9 +1278,9 @@ function transformNode(node: ESNodeOrBabelNode): ESNodeOrBabelNode | null {
|
|
|
1278
1278
|
return node;
|
|
1279
1279
|
}
|
|
1280
1280
|
case 'ImportDeclaration': {
|
|
1281
|
-
if (node.
|
|
1281
|
+
if (node.attributes == null || node.attributes.length === 0) {
|
|
1282
1282
|
// $FlowExpectedError[cannot-write]
|
|
1283
|
-
delete node.
|
|
1283
|
+
delete node.attributes;
|
|
1284
1284
|
}
|
|
1285
1285
|
return node;
|
|
1286
1286
|
}
|
|
@@ -440,6 +440,8 @@ function createForwardRefWrapper(originalComponent) {
|
|
|
440
440
|
}
|
|
441
441
|
|
|
442
442
|
function mapComponentDeclaration(node, options) {
|
|
443
|
+
var _node$async;
|
|
444
|
+
|
|
443
445
|
// Create empty loc for return type annotation nodes
|
|
444
446
|
const createRendersTypeLoc = () => ({
|
|
445
447
|
loc: {
|
|
@@ -495,7 +497,7 @@ function mapComponentDeclaration(node, options) {
|
|
|
495
497
|
params: props == null ? [] : ref == null ? [props] : [props, ref],
|
|
496
498
|
returnType,
|
|
497
499
|
body: node.body,
|
|
498
|
-
async: false,
|
|
500
|
+
async: (_node$async = node.async) != null ? _node$async : false,
|
|
499
501
|
generator: false,
|
|
500
502
|
predicate: null,
|
|
501
503
|
loc: node.loc,
|
|
@@ -544,6 +546,8 @@ function mapDeclareHook(node) {
|
|
|
544
546
|
}
|
|
545
547
|
|
|
546
548
|
function mapHookDeclaration(node) {
|
|
549
|
+
var _node$async2;
|
|
550
|
+
|
|
547
551
|
const comp = {
|
|
548
552
|
type: 'FunctionDeclaration',
|
|
549
553
|
id: node.id && (0, _astNodeMutationHelpers.shallowCloneNode)(node.id),
|
|
@@ -552,7 +556,7 @@ function mapHookDeclaration(node) {
|
|
|
552
556
|
params: node.params,
|
|
553
557
|
returnType: node.returnType,
|
|
554
558
|
body: node.body,
|
|
555
|
-
async: false,
|
|
559
|
+
async: (_node$async2 = node.async) != null ? _node$async2 : false,
|
|
556
560
|
generator: false,
|
|
557
561
|
predicate: null,
|
|
558
562
|
loc: node.loc,
|
|
@@ -590,7 +590,7 @@ function mapComponentDeclaration(
|
|
|
590
590
|
params: props == null ? [] : ref == null ? [props] : [props, ref],
|
|
591
591
|
returnType,
|
|
592
592
|
body: node.body,
|
|
593
|
-
async: false,
|
|
593
|
+
async: node.async ?? false,
|
|
594
594
|
generator: false,
|
|
595
595
|
predicate: null,
|
|
596
596
|
loc: node.loc,
|
|
@@ -645,7 +645,7 @@ function mapHookDeclaration(node: HookDeclaration): FunctionDeclaration {
|
|
|
645
645
|
params: node.params,
|
|
646
646
|
returnType: node.returnType,
|
|
647
647
|
body: node.body,
|
|
648
|
-
async: false,
|
|
648
|
+
async: node.async ?? false,
|
|
649
649
|
generator: false,
|
|
650
650
|
predicate: null,
|
|
651
651
|
loc: node.loc,
|
|
@@ -157,6 +157,7 @@ function mapRecordDeclaration(genID, node) {
|
|
|
157
157
|
kind: 'constructor',
|
|
158
158
|
computed: false,
|
|
159
159
|
static: false,
|
|
160
|
+
decorators: [],
|
|
160
161
|
value: {
|
|
161
162
|
type: 'FunctionExpression',
|
|
162
163
|
id: null,
|
|
@@ -219,6 +220,7 @@ function mapRecordDeclaration(genID, node) {
|
|
|
219
220
|
key: (0, _astNodeMutationHelpers.shallowCloneNode)(prop.key),
|
|
220
221
|
value: (0, _astNodeMutationHelpers.deepCloneNode)(prop.value),
|
|
221
222
|
static: true,
|
|
223
|
+
decorators: [],
|
|
222
224
|
typeAnnotation: null,
|
|
223
225
|
variance: null,
|
|
224
226
|
computed: false,
|
|
@@ -170,6 +170,7 @@ function mapRecordDeclaration(
|
|
|
170
170
|
kind: 'constructor',
|
|
171
171
|
computed: false,
|
|
172
172
|
static: false,
|
|
173
|
+
decorators: [],
|
|
173
174
|
value: {
|
|
174
175
|
type: 'FunctionExpression',
|
|
175
176
|
id: null,
|
|
@@ -230,6 +231,7 @@ function mapRecordDeclaration(
|
|
|
230
231
|
key: shallowCloneNode(prop.key),
|
|
231
232
|
value: deepCloneNode(prop.value),
|
|
232
233
|
static: true,
|
|
234
|
+
decorators: [],
|
|
233
235
|
typeAnnotation: null,
|
|
234
236
|
variance: null,
|
|
235
237
|
computed: false,
|
|
@@ -69,6 +69,7 @@ module.exports = {
|
|
|
69
69
|
DeclareOpaqueType: ['id', 'typeParameters', 'impltype', 'lowerBound', 'upperBound', 'supertype'],
|
|
70
70
|
DeclareTypeAlias: ['id', 'typeParameters', 'right'],
|
|
71
71
|
DeclareVariable: ['id'],
|
|
72
|
+
Decorator: ['expression'],
|
|
72
73
|
DoWhileStatement: ['body', 'test'],
|
|
73
74
|
EmptyStatement: [],
|
|
74
75
|
EmptyTypeAnnotation: [],
|
|
@@ -102,7 +103,7 @@ module.exports = {
|
|
|
102
103
|
Identifier: ['typeAnnotation'],
|
|
103
104
|
IfStatement: ['test', 'consequent', 'alternate'],
|
|
104
105
|
ImportAttribute: ['key', 'value'],
|
|
105
|
-
ImportDeclaration: ['specifiers', 'source', '
|
|
106
|
+
ImportDeclaration: ['specifiers', 'source', 'attributes'],
|
|
106
107
|
ImportDefaultSpecifier: ['local'],
|
|
107
108
|
ImportExpression: ['source', 'options'],
|
|
108
109
|
ImportNamespaceSpecifier: ['local'],
|
|
@@ -152,7 +153,7 @@ module.exports = {
|
|
|
152
153
|
MatchWildcardPattern: [],
|
|
153
154
|
MemberExpression: ['object', 'property'],
|
|
154
155
|
MetaProperty: ['meta', 'property'],
|
|
155
|
-
MethodDefinition: ['key', 'value'],
|
|
156
|
+
MethodDefinition: ['key', 'value', 'decorators'],
|
|
156
157
|
MixedTypeAnnotation: [],
|
|
157
158
|
NeverTypeAnnotation: [],
|
|
158
159
|
NewExpression: ['callee', 'typeArguments', 'arguments'],
|
|
@@ -174,7 +175,7 @@ module.exports = {
|
|
|
174
175
|
PrivateIdentifier: [],
|
|
175
176
|
Program: ['body'],
|
|
176
177
|
Property: ['key', 'value'],
|
|
177
|
-
PropertyDefinition: ['key', 'value', 'variance', 'typeAnnotation'],
|
|
178
|
+
PropertyDefinition: ['key', 'value', 'decorators', 'variance', 'typeAnnotation'],
|
|
178
179
|
QualifiedTypeIdentifier: ['qualification', 'id'],
|
|
179
180
|
QualifiedTypeofIdentifier: ['qualification', 'id'],
|
|
180
181
|
RecordDeclaration: ['id', 'typeParameters', 'implements', 'body'],
|
|
@@ -225,6 +225,9 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
225
225
|
DeclareVariable: {
|
|
226
226
|
id: 'Node'
|
|
227
227
|
},
|
|
228
|
+
Decorator: {
|
|
229
|
+
expression: 'Node'
|
|
230
|
+
},
|
|
228
231
|
DoWhileStatement: {
|
|
229
232
|
body: 'Node',
|
|
230
233
|
test: 'Node'
|
|
@@ -364,7 +367,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
364
367
|
ImportDeclaration: {
|
|
365
368
|
specifiers: 'NodeList',
|
|
366
369
|
source: 'Node',
|
|
367
|
-
|
|
370
|
+
attributes: 'NodeList'
|
|
368
371
|
},
|
|
369
372
|
ImportDefaultSpecifier: {
|
|
370
373
|
local: 'Node'
|
|
@@ -535,7 +538,8 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
535
538
|
},
|
|
536
539
|
MethodDefinition: {
|
|
537
540
|
key: 'Node',
|
|
538
|
-
value: 'Node'
|
|
541
|
+
value: 'Node',
|
|
542
|
+
decorators: 'NodeList'
|
|
539
543
|
},
|
|
540
544
|
MixedTypeAnnotation: {},
|
|
541
545
|
NeverTypeAnnotation: {},
|
|
@@ -615,6 +619,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
615
619
|
PropertyDefinition: {
|
|
616
620
|
key: 'Node',
|
|
617
621
|
value: 'Node',
|
|
622
|
+
decorators: 'NodeList',
|
|
618
623
|
variance: 'Node',
|
|
619
624
|
typeAnnotation: 'Node'
|
|
620
625
|
},
|
|
@@ -807,12 +812,14 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
807
812
|
ClassProperty: {
|
|
808
813
|
key: 'Node',
|
|
809
814
|
value: 'Node',
|
|
815
|
+
decorators: 'NodeList',
|
|
810
816
|
variance: 'Node',
|
|
811
817
|
typeAnnotation: 'Node'
|
|
812
818
|
},
|
|
813
819
|
ClassPrivateProperty: {
|
|
814
820
|
key: 'Node',
|
|
815
821
|
value: 'Node',
|
|
822
|
+
decorators: 'NodeList',
|
|
816
823
|
variance: 'Node',
|
|
817
824
|
typeAnnotation: 'Node'
|
|
818
825
|
},
|
|
@@ -99,7 +99,8 @@ function deserializeComponentDeclaration() {
|
|
|
99
99
|
params: this.deserializeNodeList(),
|
|
100
100
|
body: this.deserializeNode(),
|
|
101
101
|
typeParameters: this.deserializeNode(),
|
|
102
|
-
rendersType: this.deserializeNode()
|
|
102
|
+
rendersType: this.deserializeNode(),
|
|
103
|
+
async: this.deserializeBoolean()
|
|
103
104
|
};
|
|
104
105
|
}
|
|
105
106
|
|
|
@@ -111,7 +112,8 @@ function deserializeHookDeclaration() {
|
|
|
111
112
|
params: this.deserializeNodeList(),
|
|
112
113
|
body: this.deserializeNode(),
|
|
113
114
|
typeParameters: this.deserializeNode(),
|
|
114
|
-
returnType: this.deserializeNode()
|
|
115
|
+
returnType: this.deserializeNode(),
|
|
116
|
+
async: this.deserializeBoolean()
|
|
115
117
|
};
|
|
116
118
|
}
|
|
117
119
|
|
|
@@ -682,6 +684,14 @@ function deserializeProperty() {
|
|
|
682
684
|
};
|
|
683
685
|
}
|
|
684
686
|
|
|
687
|
+
function deserializeDecorator() {
|
|
688
|
+
return {
|
|
689
|
+
type: 'Decorator',
|
|
690
|
+
loc: this.addEmptyLoc(),
|
|
691
|
+
expression: this.deserializeNode()
|
|
692
|
+
};
|
|
693
|
+
}
|
|
694
|
+
|
|
685
695
|
function deserializeClassLikeFirst() {
|
|
686
696
|
throw new Error('ClassLike' + ' should not appear in program buffer');
|
|
687
697
|
}
|
|
@@ -734,6 +744,7 @@ function deserializeClassProperty() {
|
|
|
734
744
|
value: this.deserializeNode(),
|
|
735
745
|
computed: this.deserializeBoolean(),
|
|
736
746
|
static: this.deserializeBoolean(),
|
|
747
|
+
decorators: this.deserializeNodeList(),
|
|
737
748
|
declare: this.deserializeBoolean(),
|
|
738
749
|
optional: this.deserializeBoolean(),
|
|
739
750
|
variance: this.deserializeNode(),
|
|
@@ -749,6 +760,7 @@ function deserializeClassPrivateProperty() {
|
|
|
749
760
|
key: this.deserializeNode(),
|
|
750
761
|
value: this.deserializeNode(),
|
|
751
762
|
static: this.deserializeBoolean(),
|
|
763
|
+
decorators: this.deserializeNodeList(),
|
|
752
764
|
declare: this.deserializeBoolean(),
|
|
753
765
|
optional: this.deserializeBoolean(),
|
|
754
766
|
variance: this.deserializeNode(),
|
|
@@ -765,7 +777,8 @@ function deserializeMethodDefinition() {
|
|
|
765
777
|
value: this.deserializeNode(),
|
|
766
778
|
kind: this.deserializeString(),
|
|
767
779
|
computed: this.deserializeBoolean(),
|
|
768
|
-
static: this.deserializeBoolean()
|
|
780
|
+
static: this.deserializeBoolean(),
|
|
781
|
+
decorators: this.deserializeNodeList()
|
|
769
782
|
};
|
|
770
783
|
}
|
|
771
784
|
|
|
@@ -775,7 +788,7 @@ function deserializeImportDeclaration() {
|
|
|
775
788
|
loc: this.addEmptyLoc(),
|
|
776
789
|
specifiers: this.deserializeNodeList(),
|
|
777
790
|
source: this.deserializeNode(),
|
|
778
|
-
|
|
791
|
+
attributes: this.deserializeNodeList(),
|
|
779
792
|
importKind: this.deserializeString()
|
|
780
793
|
};
|
|
781
794
|
}
|
|
@@ -2578,4 +2591,4 @@ function deserializeImplicitCheckedCast() {
|
|
|
2578
2591
|
};
|
|
2579
2592
|
}
|
|
2580
2593
|
|
|
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];
|
|
2594
|
+
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, deserializeDecorator, 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];
|
|
@@ -1115,9 +1115,9 @@ function transformNode(node) {
|
|
|
1115
1115
|
|
|
1116
1116
|
case 'ImportDeclaration':
|
|
1117
1117
|
{
|
|
1118
|
-
if (node.
|
|
1118
|
+
if (node.attributes == null || node.attributes.length === 0) {
|
|
1119
1119
|
// $FlowExpectedError[cannot-write]
|
|
1120
|
-
delete node.
|
|
1120
|
+
delete node.attributes;
|
|
1121
1121
|
}
|
|
1122
1122
|
|
|
1123
1123
|
return node;
|
|
@@ -440,6 +440,8 @@ function createForwardRefWrapper(originalComponent) {
|
|
|
440
440
|
}
|
|
441
441
|
|
|
442
442
|
function mapComponentDeclaration(node, options) {
|
|
443
|
+
var _node$async;
|
|
444
|
+
|
|
443
445
|
// Create empty loc for return type annotation nodes
|
|
444
446
|
const createRendersTypeLoc = () => ({
|
|
445
447
|
loc: {
|
|
@@ -495,7 +497,7 @@ function mapComponentDeclaration(node, options) {
|
|
|
495
497
|
params: props == null ? [] : ref == null ? [props] : [props, ref],
|
|
496
498
|
returnType,
|
|
497
499
|
body: node.body,
|
|
498
|
-
async: false,
|
|
500
|
+
async: (_node$async = node.async) != null ? _node$async : false,
|
|
499
501
|
generator: false,
|
|
500
502
|
predicate: null,
|
|
501
503
|
loc: node.loc,
|
|
@@ -544,6 +546,8 @@ function mapDeclareHook(node) {
|
|
|
544
546
|
}
|
|
545
547
|
|
|
546
548
|
function mapHookDeclaration(node) {
|
|
549
|
+
var _node$async2;
|
|
550
|
+
|
|
547
551
|
const comp = {
|
|
548
552
|
type: 'FunctionDeclaration',
|
|
549
553
|
id: node.id && (0, _astNodeMutationHelpers.shallowCloneNode)(node.id),
|
|
@@ -552,7 +556,7 @@ function mapHookDeclaration(node) {
|
|
|
552
556
|
params: node.params,
|
|
553
557
|
returnType: node.returnType,
|
|
554
558
|
body: node.body,
|
|
555
|
-
async: false,
|
|
559
|
+
async: (_node$async2 = node.async) != null ? _node$async2 : false,
|
|
556
560
|
generator: false,
|
|
557
561
|
predicate: null,
|
|
558
562
|
loc: node.loc,
|
|
@@ -157,6 +157,7 @@ function mapRecordDeclaration(genID, node) {
|
|
|
157
157
|
kind: 'constructor',
|
|
158
158
|
computed: false,
|
|
159
159
|
static: false,
|
|
160
|
+
decorators: [],
|
|
160
161
|
value: {
|
|
161
162
|
type: 'FunctionExpression',
|
|
162
163
|
id: null,
|
|
@@ -219,6 +220,7 @@ function mapRecordDeclaration(genID, node) {
|
|
|
219
220
|
key: (0, _astNodeMutationHelpers.shallowCloneNode)(prop.key),
|
|
220
221
|
value: (0, _astNodeMutationHelpers.deepCloneNode)(prop.value),
|
|
221
222
|
static: true,
|
|
223
|
+
decorators: [],
|
|
222
224
|
typeAnnotation: null,
|
|
223
225
|
variance: null,
|
|
224
226
|
computed: false,
|
|
@@ -69,6 +69,7 @@ module.exports = {
|
|
|
69
69
|
DeclareOpaqueType: ['id', 'typeParameters', 'impltype', 'lowerBound', 'upperBound', 'supertype'],
|
|
70
70
|
DeclareTypeAlias: ['id', 'typeParameters', 'right'],
|
|
71
71
|
DeclareVariable: ['id'],
|
|
72
|
+
Decorator: ['expression'],
|
|
72
73
|
DoWhileStatement: ['body', 'test'],
|
|
73
74
|
EmptyStatement: [],
|
|
74
75
|
EmptyTypeAnnotation: [],
|
|
@@ -102,7 +103,7 @@ module.exports = {
|
|
|
102
103
|
Identifier: ['typeAnnotation'],
|
|
103
104
|
IfStatement: ['test', 'consequent', 'alternate'],
|
|
104
105
|
ImportAttribute: ['key', 'value'],
|
|
105
|
-
ImportDeclaration: ['specifiers', 'source', '
|
|
106
|
+
ImportDeclaration: ['specifiers', 'source', 'attributes'],
|
|
106
107
|
ImportDefaultSpecifier: ['local'],
|
|
107
108
|
ImportExpression: ['source', 'options'],
|
|
108
109
|
ImportNamespaceSpecifier: ['local'],
|
|
@@ -152,7 +153,7 @@ module.exports = {
|
|
|
152
153
|
MatchWildcardPattern: [],
|
|
153
154
|
MemberExpression: ['object', 'property'],
|
|
154
155
|
MetaProperty: ['meta', 'property'],
|
|
155
|
-
MethodDefinition: ['key', 'value'],
|
|
156
|
+
MethodDefinition: ['key', 'value', 'decorators'],
|
|
156
157
|
MixedTypeAnnotation: [],
|
|
157
158
|
NeverTypeAnnotation: [],
|
|
158
159
|
NewExpression: ['callee', 'typeArguments', 'arguments'],
|
|
@@ -174,7 +175,7 @@ module.exports = {
|
|
|
174
175
|
PrivateIdentifier: [],
|
|
175
176
|
Program: ['body'],
|
|
176
177
|
Property: ['key', 'value'],
|
|
177
|
-
PropertyDefinition: ['key', 'value', 'variance', 'typeAnnotation'],
|
|
178
|
+
PropertyDefinition: ['key', 'value', 'decorators', 'variance', 'typeAnnotation'],
|
|
178
179
|
QualifiedTypeIdentifier: ['qualification', 'id'],
|
|
179
180
|
QualifiedTypeofIdentifier: ['qualification', 'id'],
|
|
180
181
|
RecordDeclaration: ['id', 'typeParameters', 'implements', 'body'],
|
|
@@ -225,6 +225,9 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
225
225
|
DeclareVariable: {
|
|
226
226
|
id: 'Node'
|
|
227
227
|
},
|
|
228
|
+
Decorator: {
|
|
229
|
+
expression: 'Node'
|
|
230
|
+
},
|
|
228
231
|
DoWhileStatement: {
|
|
229
232
|
body: 'Node',
|
|
230
233
|
test: 'Node'
|
|
@@ -364,7 +367,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
364
367
|
ImportDeclaration: {
|
|
365
368
|
specifiers: 'NodeList',
|
|
366
369
|
source: 'Node',
|
|
367
|
-
|
|
370
|
+
attributes: 'NodeList'
|
|
368
371
|
},
|
|
369
372
|
ImportDefaultSpecifier: {
|
|
370
373
|
local: 'Node'
|
|
@@ -535,7 +538,8 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
535
538
|
},
|
|
536
539
|
MethodDefinition: {
|
|
537
540
|
key: 'Node',
|
|
538
|
-
value: 'Node'
|
|
541
|
+
value: 'Node',
|
|
542
|
+
decorators: 'NodeList'
|
|
539
543
|
},
|
|
540
544
|
MixedTypeAnnotation: {},
|
|
541
545
|
NeverTypeAnnotation: {},
|
|
@@ -615,6 +619,7 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
615
619
|
PropertyDefinition: {
|
|
616
620
|
key: 'Node',
|
|
617
621
|
value: 'Node',
|
|
622
|
+
decorators: 'NodeList',
|
|
618
623
|
variance: 'Node',
|
|
619
624
|
typeAnnotation: 'Node'
|
|
620
625
|
},
|
|
@@ -807,12 +812,14 @@ const HERMES_AST_VISITOR_KEYS = {
|
|
|
807
812
|
ClassProperty: {
|
|
808
813
|
key: 'Node',
|
|
809
814
|
value: 'Node',
|
|
815
|
+
decorators: 'NodeList',
|
|
810
816
|
variance: 'Node',
|
|
811
817
|
typeAnnotation: 'Node'
|
|
812
818
|
},
|
|
813
819
|
ClassPrivateProperty: {
|
|
814
820
|
key: 'Node',
|
|
815
821
|
value: 'Node',
|
|
822
|
+
decorators: 'NodeList',
|
|
816
823
|
variance: 'Node',
|
|
817
824
|
typeAnnotation: 'Node'
|
|
818
825
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hermes-parser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "A JavaScript parser built from the Hermes engine",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"url": "git@github.com:facebook/hermes.git"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"hermes-estree": "0.
|
|
12
|
+
"hermes-estree": "0.35.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@babel/parser": "7.7.4",
|