hermes-parser 0.16.0 → 0.17.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 +10 -1
- package/dist/HermesParserWASM.js +1 -1
- package/dist/babel/TransformESTreeToBabel.js +20 -11
- package/dist/babel/TransformESTreeToBabel.js.flow +14 -11
- package/dist/estree/StripComponentSyntax.js +37 -50
- package/dist/estree/StripComponentSyntax.js.flow +32 -46
- package/dist/estree/StripFlowTypes.js +1 -0
- package/dist/estree/StripFlowTypes.js.flow +1 -0
- package/dist/estree/StripFlowTypesForBabel.js +18 -1
- package/dist/estree/StripFlowTypesForBabel.js.flow +17 -1
- package/dist/generated/ESTreeVisitorKeys.js +1 -0
- package/dist/generated/ParserVisitorKeys.js +4 -0
- package/dist/utils/createSyntaxError.js +25 -0
- package/dist/utils/createSyntaxError.js.flow +24 -0
- package/package.json +2 -2
|
@@ -20,6 +20,8 @@ var _SimpleTraverser = require("../traverse/SimpleTraverser");
|
|
|
20
20
|
|
|
21
21
|
var _ESTreeVisitorKeys = _interopRequireDefault(require("../generated/ESTreeVisitorKeys"));
|
|
22
22
|
|
|
23
|
+
var _createSyntaxError = require("../utils/createSyntaxError");
|
|
24
|
+
|
|
23
25
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
26
|
|
|
25
27
|
// Rely on the mapper to fix up parent relationships.
|
|
@@ -55,16 +57,6 @@ const FlowESTreeAndBabelVisitorKeys = { ..._ESTreeVisitorKeys.default,
|
|
|
55
57
|
function nodeWith(node, overrideProps) {
|
|
56
58
|
return _SimpleTransform.SimpleTransform.nodeWith(node, overrideProps, FlowESTreeAndBabelVisitorKeys);
|
|
57
59
|
}
|
|
58
|
-
|
|
59
|
-
function createSyntaxError(node, err) {
|
|
60
|
-
const syntaxError = new SyntaxError(err); // $FlowExpectedError[prop-missing]
|
|
61
|
-
|
|
62
|
-
syntaxError.loc = {
|
|
63
|
-
line: node.loc.start.line,
|
|
64
|
-
column: node.loc.start.column
|
|
65
|
-
};
|
|
66
|
-
return syntaxError;
|
|
67
|
-
}
|
|
68
60
|
/**
|
|
69
61
|
* Babel node types
|
|
70
62
|
*
|
|
@@ -250,7 +242,7 @@ function mapProperty(node) {
|
|
|
250
242
|
|
|
251
243
|
if (node.method || node.kind !== 'init') {
|
|
252
244
|
if (value.type !== 'FunctionExpression') {
|
|
253
|
-
throw createSyntaxError(node, `Invalid method property, the value must be a "FunctionExpression" or "ArrowFunctionExpression. Instead got "${value.type}".`);
|
|
245
|
+
throw (0, _createSyntaxError.createSyntaxError)(node, `Invalid method property, the value must be a "FunctionExpression" or "ArrowFunctionExpression. Instead got "${value.type}".`);
|
|
254
246
|
} // Properties under the FunctionExpression value that should be moved
|
|
255
247
|
// to the ObjectMethod node itself.
|
|
256
248
|
|
|
@@ -749,6 +741,23 @@ function transformNode(node) {
|
|
|
749
741
|
return node;
|
|
750
742
|
}
|
|
751
743
|
|
|
744
|
+
case 'AsExpression':
|
|
745
|
+
{
|
|
746
|
+
const {
|
|
747
|
+
typeAnnotation
|
|
748
|
+
} = node; // $FlowExpectedError[cannot-write]
|
|
749
|
+
|
|
750
|
+
node.type = 'TypeCastExpression'; // $FlowExpectedError[cannot-write]
|
|
751
|
+
|
|
752
|
+
node.typeAnnotation = {
|
|
753
|
+
type: 'TypeAnnotation',
|
|
754
|
+
typeAnnotation,
|
|
755
|
+
loc: typeAnnotation.loc,
|
|
756
|
+
range: typeAnnotation.range
|
|
757
|
+
};
|
|
758
|
+
return node;
|
|
759
|
+
}
|
|
760
|
+
|
|
752
761
|
/**
|
|
753
762
|
* Babel has a different format for Literals
|
|
754
763
|
*/
|
|
@@ -49,6 +49,7 @@ import type {VisitorKeys} from '../generated/ESTreeVisitorKeys';
|
|
|
49
49
|
import {SimpleTransform} from '../transform/SimpleTransform';
|
|
50
50
|
import {SimpleTraverser} from '../traverse/SimpleTraverser';
|
|
51
51
|
import FlowVisitorKeys from '../generated/ESTreeVisitorKeys';
|
|
52
|
+
import {createSyntaxError} from '../utils/createSyntaxError';
|
|
52
53
|
|
|
53
54
|
// Rely on the mapper to fix up parent relationships.
|
|
54
55
|
const EMPTY_PARENT: $FlowFixMe = null;
|
|
@@ -96,17 +97,6 @@ function nodeWith<T: ESNode>(node: T, overrideProps: Partial<T>): T {
|
|
|
96
97
|
);
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
function createSyntaxError(node: ESNode, err: string): SyntaxError {
|
|
100
|
-
const syntaxError = new SyntaxError(err);
|
|
101
|
-
// $FlowExpectedError[prop-missing]
|
|
102
|
-
syntaxError.loc = {
|
|
103
|
-
line: node.loc.start.line,
|
|
104
|
-
column: node.loc.start.column,
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
return syntaxError;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
100
|
/**
|
|
111
101
|
* Babel node types
|
|
112
102
|
*
|
|
@@ -982,6 +972,19 @@ function transformNode(node: ESNodeOrBabelNode): ESNodeOrBabelNode | null {
|
|
|
982
972
|
node.range = [node.range[0] + 1, node.range[1] - 1];
|
|
983
973
|
return node;
|
|
984
974
|
}
|
|
975
|
+
case 'AsExpression': {
|
|
976
|
+
const {typeAnnotation} = node;
|
|
977
|
+
// $FlowExpectedError[cannot-write]
|
|
978
|
+
node.type = 'TypeCastExpression';
|
|
979
|
+
// $FlowExpectedError[cannot-write]
|
|
980
|
+
node.typeAnnotation = {
|
|
981
|
+
type: 'TypeAnnotation',
|
|
982
|
+
typeAnnotation,
|
|
983
|
+
loc: typeAnnotation.loc,
|
|
984
|
+
range: typeAnnotation.range,
|
|
985
|
+
};
|
|
986
|
+
return node;
|
|
987
|
+
}
|
|
985
988
|
|
|
986
989
|
/**
|
|
987
990
|
* Babel has a different format for Literals
|
|
@@ -28,20 +28,12 @@ var _astNodeMutationHelpers = require("../transform/astNodeMutationHelpers");
|
|
|
28
28
|
|
|
29
29
|
var _SimpleTraverser = require("../traverse/SimpleTraverser");
|
|
30
30
|
|
|
31
|
+
var _createSyntaxError = require("../utils/createSyntaxError");
|
|
32
|
+
|
|
31
33
|
const nodeWith = _SimpleTransform.SimpleTransform.nodeWith; // Rely on the mapper to fix up parent relationships.
|
|
32
34
|
|
|
33
35
|
const EMPTY_PARENT = null;
|
|
34
36
|
|
|
35
|
-
function createSyntaxError(node, err) {
|
|
36
|
-
const syntaxError = new SyntaxError(err); // $FlowExpectedError[prop-missing]
|
|
37
|
-
|
|
38
|
-
syntaxError.loc = {
|
|
39
|
-
line: node.loc.start.line,
|
|
40
|
-
column: node.loc.start.column
|
|
41
|
-
};
|
|
42
|
-
return syntaxError;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
37
|
function createDefaultPosition() {
|
|
46
38
|
return {
|
|
47
39
|
line: 1,
|
|
@@ -82,7 +74,7 @@ function getComponentParameterName(paramName) {
|
|
|
82
74
|
return paramName.value;
|
|
83
75
|
|
|
84
76
|
default:
|
|
85
|
-
throw createSyntaxError(paramName, `Unknown Component parameter name type of "${paramName.type}"`);
|
|
77
|
+
throw (0, _createSyntaxError.createSyntaxError)(paramName, `Unknown Component parameter name type of "${paramName.type}"`);
|
|
86
78
|
}
|
|
87
79
|
}
|
|
88
80
|
|
|
@@ -237,7 +229,7 @@ function mapComponentParameter(param) {
|
|
|
237
229
|
case 'ComponentParameter':
|
|
238
230
|
{
|
|
239
231
|
if (getComponentParameterName(param.name) === 'ref') {
|
|
240
|
-
throw createSyntaxError(param, 'Component parameters named "ref" are currently not supported');
|
|
232
|
+
throw (0, _createSyntaxError.createSyntaxError)(param, 'Component parameters named "ref" are currently not supported');
|
|
241
233
|
}
|
|
242
234
|
|
|
243
235
|
let value;
|
|
@@ -289,7 +281,7 @@ function mapComponentParameter(param) {
|
|
|
289
281
|
|
|
290
282
|
default:
|
|
291
283
|
{
|
|
292
|
-
throw createSyntaxError(param, `Unknown Component parameter type of "${param.type}"`);
|
|
284
|
+
throw (0, _createSyntaxError.createSyntaxError)(param, `Unknown Component parameter type of "${param.type}"`);
|
|
293
285
|
}
|
|
294
286
|
}
|
|
295
287
|
}
|
|
@@ -360,48 +352,43 @@ function createForwardRefWrapper(originalComponent) {
|
|
|
360
352
|
}
|
|
361
353
|
|
|
362
354
|
function mapComponentDeclaration(node) {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
range: [node.body.range[1], node.body.range[1]],
|
|
373
|
-
parent: EMPTY_PARENT
|
|
374
|
-
});
|
|
355
|
+
// Create empty loc for return type annotation nodes
|
|
356
|
+
const createRendersTypeLoc = () => ({
|
|
357
|
+
loc: {
|
|
358
|
+
start: node.body.loc.end,
|
|
359
|
+
end: node.body.loc.end
|
|
360
|
+
},
|
|
361
|
+
range: [node.body.range[1], node.body.range[1]],
|
|
362
|
+
parent: EMPTY_PARENT
|
|
363
|
+
});
|
|
375
364
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
365
|
+
const returnType = {
|
|
366
|
+
type: 'TypeAnnotation',
|
|
367
|
+
typeAnnotation: {
|
|
368
|
+
type: 'GenericTypeAnnotation',
|
|
369
|
+
id: {
|
|
370
|
+
type: 'QualifiedTypeIdentifier',
|
|
371
|
+
qualification: {
|
|
372
|
+
type: 'Identifier',
|
|
373
|
+
name: 'React',
|
|
374
|
+
optional: false,
|
|
375
|
+
typeAnnotation: null,
|
|
376
|
+
...createRendersTypeLoc()
|
|
377
|
+
},
|
|
380
378
|
id: {
|
|
381
|
-
type: '
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
optional: false,
|
|
386
|
-
typeAnnotation: null,
|
|
387
|
-
...createRendersTypeLoc()
|
|
388
|
-
},
|
|
389
|
-
id: {
|
|
390
|
-
type: 'Identifier',
|
|
391
|
-
name: 'Node',
|
|
392
|
-
optional: false,
|
|
393
|
-
typeAnnotation: null,
|
|
394
|
-
...createRendersTypeLoc()
|
|
395
|
-
},
|
|
379
|
+
type: 'Identifier',
|
|
380
|
+
name: 'Node',
|
|
381
|
+
optional: false,
|
|
382
|
+
typeAnnotation: null,
|
|
396
383
|
...createRendersTypeLoc()
|
|
397
384
|
},
|
|
398
|
-
typeParameters: null,
|
|
399
385
|
...createRendersTypeLoc()
|
|
400
386
|
},
|
|
387
|
+
typeParameters: null,
|
|
401
388
|
...createRendersTypeLoc()
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
|
|
389
|
+
},
|
|
390
|
+
...createRendersTypeLoc()
|
|
391
|
+
};
|
|
405
392
|
const {
|
|
406
393
|
props,
|
|
407
394
|
ref
|
|
@@ -418,7 +405,7 @@ function mapComponentDeclaration(node) {
|
|
|
418
405
|
__componentDeclaration: true,
|
|
419
406
|
typeParameters: node.typeParameters,
|
|
420
407
|
params: props == null ? [] : ref == null ? [props] : [props, ref],
|
|
421
|
-
returnType
|
|
408
|
+
returnType,
|
|
422
409
|
body: node.body,
|
|
423
410
|
async: false,
|
|
424
411
|
generator: false,
|
|
@@ -609,7 +596,7 @@ function transformProgram(program, _options) {
|
|
|
609
596
|
{
|
|
610
597
|
var _node$parent;
|
|
611
598
|
|
|
612
|
-
throw createSyntaxError(node, `Components must be defined at the top level of a module or within a ` + `BlockStatement, instead got parent of "${(_node$parent = node.parent) == null ? void 0 : _node$parent.type}".`);
|
|
599
|
+
throw (0, _createSyntaxError.createSyntaxError)(node, `Components must be defined at the top level of a module or within a ` + `BlockStatement, instead got parent of "${(_node$parent = node.parent) == null ? void 0 : _node$parent.type}".`);
|
|
613
600
|
}
|
|
614
601
|
|
|
615
602
|
default:
|
|
@@ -43,23 +43,13 @@ import type {
|
|
|
43
43
|
import {SimpleTransform} from '../transform/SimpleTransform';
|
|
44
44
|
import {shallowCloneNode} from '../transform/astNodeMutationHelpers';
|
|
45
45
|
import {SimpleTraverser} from '../traverse/SimpleTraverser';
|
|
46
|
+
import {createSyntaxError} from '../utils/createSyntaxError';
|
|
46
47
|
|
|
47
48
|
const nodeWith = SimpleTransform.nodeWith;
|
|
48
49
|
|
|
49
50
|
// Rely on the mapper to fix up parent relationships.
|
|
50
51
|
const EMPTY_PARENT: $FlowFixMe = null;
|
|
51
52
|
|
|
52
|
-
function createSyntaxError(node: ESNode, err: string): SyntaxError {
|
|
53
|
-
const syntaxError = new SyntaxError(err);
|
|
54
|
-
// $FlowExpectedError[prop-missing]
|
|
55
|
-
syntaxError.loc = {
|
|
56
|
-
line: node.loc.start.line,
|
|
57
|
-
column: node.loc.start.column,
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
return syntaxError;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
53
|
function createDefaultPosition(): Position {
|
|
64
54
|
return {
|
|
65
55
|
line: 1,
|
|
@@ -424,46 +414,42 @@ function mapComponentDeclaration(node: ComponentDeclaration): {
|
|
|
424
414
|
comp: FunctionDeclaration,
|
|
425
415
|
forwardRefDetails: ?ForwardRefDetails,
|
|
426
416
|
} {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
417
|
+
// Create empty loc for return type annotation nodes
|
|
418
|
+
const createRendersTypeLoc = () => ({
|
|
419
|
+
loc: {
|
|
420
|
+
start: node.body.loc.end,
|
|
421
|
+
end: node.body.loc.end,
|
|
422
|
+
},
|
|
423
|
+
range: [node.body.range[1], node.body.range[1]],
|
|
424
|
+
parent: EMPTY_PARENT,
|
|
425
|
+
});
|
|
426
|
+
const returnType: TypeAnnotation = {
|
|
427
|
+
type: 'TypeAnnotation',
|
|
428
|
+
typeAnnotation: {
|
|
429
|
+
type: 'GenericTypeAnnotation',
|
|
430
|
+
id: {
|
|
431
|
+
type: 'QualifiedTypeIdentifier',
|
|
432
|
+
qualification: {
|
|
433
|
+
type: 'Identifier',
|
|
434
|
+
name: 'React',
|
|
435
|
+
optional: false,
|
|
436
|
+
typeAnnotation: null,
|
|
437
|
+
...createRendersTypeLoc(),
|
|
438
|
+
},
|
|
443
439
|
id: {
|
|
444
|
-
type: '
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
optional: false,
|
|
449
|
-
typeAnnotation: null,
|
|
450
|
-
...createRendersTypeLoc(),
|
|
451
|
-
},
|
|
452
|
-
id: {
|
|
453
|
-
type: 'Identifier',
|
|
454
|
-
name: 'Node',
|
|
455
|
-
optional: false,
|
|
456
|
-
typeAnnotation: null,
|
|
457
|
-
...createRendersTypeLoc(),
|
|
458
|
-
},
|
|
440
|
+
type: 'Identifier',
|
|
441
|
+
name: 'Node',
|
|
442
|
+
optional: false,
|
|
443
|
+
typeAnnotation: null,
|
|
459
444
|
...createRendersTypeLoc(),
|
|
460
445
|
},
|
|
461
|
-
typeParameters: null,
|
|
462
446
|
...createRendersTypeLoc(),
|
|
463
447
|
},
|
|
448
|
+
typeParameters: null,
|
|
464
449
|
...createRendersTypeLoc(),
|
|
465
|
-
}
|
|
466
|
-
|
|
450
|
+
},
|
|
451
|
+
...createRendersTypeLoc(),
|
|
452
|
+
};
|
|
467
453
|
|
|
468
454
|
const {props, ref} = mapComponentParameters(node.params);
|
|
469
455
|
|
|
@@ -482,7 +468,7 @@ function mapComponentDeclaration(node: ComponentDeclaration): {
|
|
|
482
468
|
__componentDeclaration: true,
|
|
483
469
|
typeParameters: node.typeParameters,
|
|
484
470
|
params: props == null ? [] : ref == null ? [props] : [props, ref],
|
|
485
|
-
returnType
|
|
471
|
+
returnType,
|
|
486
472
|
body: node.body,
|
|
487
473
|
async: false,
|
|
488
474
|
generator: false,
|
|
@@ -24,6 +24,8 @@ exports.transformProgram = transformProgram;
|
|
|
24
24
|
|
|
25
25
|
var _SimpleTransform = require("../transform/SimpleTransform");
|
|
26
26
|
|
|
27
|
+
var _createSyntaxError = require("../utils/createSyntaxError");
|
|
28
|
+
|
|
27
29
|
const nodeWith = _SimpleTransform.SimpleTransform.nodeWith; // Rely on the mapper to fix up parent relationships.
|
|
28
30
|
|
|
29
31
|
const EMPTY_PARENT = null;
|
|
@@ -126,6 +128,22 @@ function transformProgram(program, _options) {
|
|
|
126
128
|
return createSimpleGenericTypeAnnotation('bigint', node);
|
|
127
129
|
}
|
|
128
130
|
|
|
131
|
+
case 'ObjectTypeAnnotation':
|
|
132
|
+
{
|
|
133
|
+
const shouldStrip = node.properties.some(prop => prop.type === 'ObjectTypeMappedTypeProperty');
|
|
134
|
+
|
|
135
|
+
if (shouldStrip) {
|
|
136
|
+
return createAnyTypeAnnotation(node);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return node;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
case 'ObjectTypeMappedTypeProperty':
|
|
143
|
+
{
|
|
144
|
+
throw (0, _createSyntaxError.createSyntaxError)(node, `Invalid AST structure, ObjectTypeMappedTypeProperty found outside of an ObjectTypeAnnotation`);
|
|
145
|
+
}
|
|
146
|
+
|
|
129
147
|
case 'IndexedAccessType':
|
|
130
148
|
case 'OptionalIndexedAccessType':
|
|
131
149
|
case 'KeyofTypeAnnotation':
|
|
@@ -133,7 +151,6 @@ function transformProgram(program, _options) {
|
|
|
133
151
|
case 'InferTypeAnnotation':
|
|
134
152
|
case 'TupleTypeLabeledElement':
|
|
135
153
|
case 'TupleTypeSpreadElement':
|
|
136
|
-
case 'ObjectTypeMappedTypeProperty':
|
|
137
154
|
case 'ComponentTypeAnnotation':
|
|
138
155
|
case 'TypeOperator':
|
|
139
156
|
case 'TypePredicate':
|
|
@@ -32,6 +32,7 @@ import type {
|
|
|
32
32
|
} from 'hermes-estree';
|
|
33
33
|
|
|
34
34
|
import {SimpleTransform} from '../transform/SimpleTransform';
|
|
35
|
+
import {createSyntaxError} from '../utils/createSyntaxError';
|
|
35
36
|
|
|
36
37
|
const nodeWith = SimpleTransform.nodeWith;
|
|
37
38
|
|
|
@@ -140,6 +141,22 @@ export function transformProgram(
|
|
|
140
141
|
// Convert to simple generic type annotation
|
|
141
142
|
return createSimpleGenericTypeAnnotation('bigint', node);
|
|
142
143
|
}
|
|
144
|
+
case 'ObjectTypeAnnotation': {
|
|
145
|
+
const shouldStrip = node.properties.some(
|
|
146
|
+
prop => prop.type === 'ObjectTypeMappedTypeProperty',
|
|
147
|
+
);
|
|
148
|
+
if (shouldStrip) {
|
|
149
|
+
return createAnyTypeAnnotation(node);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return node;
|
|
153
|
+
}
|
|
154
|
+
case 'ObjectTypeMappedTypeProperty': {
|
|
155
|
+
throw createSyntaxError(
|
|
156
|
+
node,
|
|
157
|
+
`Invalid AST structure, ObjectTypeMappedTypeProperty found outside of an ObjectTypeAnnotation`,
|
|
158
|
+
);
|
|
159
|
+
}
|
|
143
160
|
case 'IndexedAccessType':
|
|
144
161
|
case 'OptionalIndexedAccessType':
|
|
145
162
|
case 'KeyofTypeAnnotation':
|
|
@@ -147,7 +164,6 @@ export function transformProgram(
|
|
|
147
164
|
case 'InferTypeAnnotation':
|
|
148
165
|
case 'TupleTypeLabeledElement':
|
|
149
166
|
case 'TupleTypeSpreadElement':
|
|
150
|
-
case 'ObjectTypeMappedTypeProperty':
|
|
151
167
|
case 'ComponentTypeAnnotation':
|
|
152
168
|
case 'TypeOperator':
|
|
153
169
|
case 'TypePredicate': {
|
|
@@ -27,6 +27,7 @@ module.exports = {
|
|
|
27
27
|
ArrayPattern: ['elements', 'typeAnnotation'],
|
|
28
28
|
ArrayTypeAnnotation: ['elementType'],
|
|
29
29
|
ArrowFunctionExpression: ['id', 'params', 'body', 'typeParameters', 'returnType', 'predicate'],
|
|
30
|
+
AsExpression: ['expression', 'typeAnnotation'],
|
|
30
31
|
AssignmentExpression: ['left', 'right'],
|
|
31
32
|
AssignmentPattern: ['left', 'right'],
|
|
32
33
|
AwaitExpression: ['argument'],
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
Object.defineProperty(exports, "__esModule", {
|
|
13
|
+
value: true
|
|
14
|
+
});
|
|
15
|
+
exports.createSyntaxError = createSyntaxError;
|
|
16
|
+
|
|
17
|
+
function createSyntaxError(node, err) {
|
|
18
|
+
const syntaxError = new SyntaxError(err); // $FlowExpectedError[prop-missing]
|
|
19
|
+
|
|
20
|
+
syntaxError.loc = {
|
|
21
|
+
line: node.loc.start.line,
|
|
22
|
+
column: node.loc.start.column
|
|
23
|
+
};
|
|
24
|
+
return syntaxError;
|
|
25
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
import type {ESNode} from 'hermes-estree';
|
|
14
|
+
|
|
15
|
+
export function createSyntaxError(node: ESNode, err: string): SyntaxError {
|
|
16
|
+
const syntaxError = new SyntaxError(err);
|
|
17
|
+
// $FlowExpectedError[prop-missing]
|
|
18
|
+
syntaxError.loc = {
|
|
19
|
+
line: node.loc.start.line,
|
|
20
|
+
column: node.loc.start.column,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
return syntaxError;
|
|
24
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hermes-parser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.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.17.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@babel/parser": "7.7.4",
|