flow-parser 0.321.0 → 0.323.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 +25 -32
- package/dist/FlowParser.js +3 -53
- package/dist/FlowParserDeserializer.js +3 -41
- package/dist/FlowParserNodeDeserializers.js +0 -7
- package/dist/FlowParserWASM.js +1 -1
- package/dist/HermesParserDecodeUTF8String.js +0 -9
- package/dist/ParserOptions.js +1 -2
- package/dist/babel/TransformESTreeToBabel.js +9 -157
- package/dist/estree/StripFlowTypes.js +0 -26
- package/dist/estree/StripFlowTypesForBabel.js +0 -24
- package/dist/estree/TransformComponentSyntax.js +1 -87
- package/dist/estree/TransformComponentSyntax.js.flow +1 -0
- package/dist/estree/TransformEnumSyntax.js +0 -12
- package/dist/estree/TransformMatchSyntax.js +3 -99
- package/dist/estree/TransformRecordSyntax.js +3 -31
- package/dist/getModuleDocblock.js +0 -21
- package/dist/index.js +25 -99
- package/dist/transform/SimpleTransform.js +0 -21
- package/dist/transform/astArrayMutationHelpers.js +0 -9
- package/dist/transform/astNodeMutationHelpers.js +4 -26
- package/dist/traverse/SimpleTraverser.js +2 -22
- package/dist/traverse/getVisitorKeys.js +3 -9
- package/dist/utils/Builders.js +1 -17
- package/dist/utils/GenID.js +0 -7
- package/dist/utils/createSyntaxError.js +0 -1
- package/dist/utils/isReservedWord.js +0 -2
- package/dist/utils/mutateESTreeASTForPrettier.js +6 -21
- package/package.json +2 -2
- package/dist/transform/print/comments/comments.js +0 -245
- package/dist/transform/print/comments/comments.js.flow +0 -330
- package/dist/transform/print/comments/prettier/common/util.js +0 -235
- package/dist/transform/print/comments/prettier/language-js/comments.js +0 -663
- package/dist/transform/print/comments/prettier/language-js/loc.js +0 -30
- package/dist/transform/print/comments/prettier/language-js/printer-estree.js +0 -23
- package/dist/transform/print/comments/prettier/language-js/utils.js +0 -89
- package/dist/transform/print/comments/prettier/main/comments.js +0 -374
- package/dist/transform/print/comments/prettier/utils/get-last.js +0 -5
- package/dist/transform/print/detachedNodeTypes.js +0 -1
- package/dist/transform/print/detachedNodeTypes.js.flow +0 -24
- package/dist/transform/print/print.js +0 -68
- package/dist/transform/print/print.js.flow +0 -87
|
@@ -10,18 +10,13 @@ exports.replaceNodeOnParent = replaceNodeOnParent;
|
|
|
10
10
|
exports.setParentPointersInDirectChildren = setParentPointersInDirectChildren;
|
|
11
11
|
exports.shallowCloneNode = shallowCloneNode;
|
|
12
12
|
exports.updateAllParentPointers = updateAllParentPointers;
|
|
13
|
-
|
|
14
13
|
var _astArrayMutationHelpers = require("./astArrayMutationHelpers");
|
|
15
|
-
|
|
16
14
|
var _getVisitorKeys = require("../traverse/getVisitorKeys");
|
|
17
|
-
|
|
18
15
|
var _SimpleTraverser = require("../traverse/SimpleTraverser");
|
|
19
|
-
|
|
20
16
|
function getParentKey(target, parent, visitorKeys) {
|
|
21
17
|
if (parent == null) {
|
|
22
18
|
throw new Error(`Expected parent node to be set on "${target.type}"`);
|
|
23
19
|
}
|
|
24
|
-
|
|
25
20
|
for (const key of (0, _getVisitorKeys.getVisitorKeys)(parent, visitorKeys)) {
|
|
26
21
|
if ((0, _getVisitorKeys.isNode)(parent[key])) {
|
|
27
22
|
if (parent[key] === target) {
|
|
@@ -34,7 +29,6 @@ function getParentKey(target, parent, visitorKeys) {
|
|
|
34
29
|
} else if (Array.isArray(parent[key])) {
|
|
35
30
|
for (let i = 0; i < parent[key].length; i += 1) {
|
|
36
31
|
const current = parent[key][i];
|
|
37
|
-
|
|
38
32
|
if (current === target) {
|
|
39
33
|
return {
|
|
40
34
|
type: 'array',
|
|
@@ -46,36 +40,29 @@ function getParentKey(target, parent, visitorKeys) {
|
|
|
46
40
|
}
|
|
47
41
|
}
|
|
48
42
|
}
|
|
49
|
-
|
|
50
43
|
throw new Error(`Expected to find the ${target.type} as a direct child of the ${parent.type}.`);
|
|
51
44
|
}
|
|
52
|
-
|
|
53
45
|
function replaceNodeOnParent(originalNode, originalNodeParent, nodeToReplaceWith, visitorKeys) {
|
|
54
46
|
const replacementParent = getParentKey(originalNode, originalNodeParent, visitorKeys);
|
|
55
47
|
const parent = replacementParent.node;
|
|
56
|
-
|
|
57
48
|
if (replacementParent.type === 'array') {
|
|
58
49
|
parent[replacementParent.key] = (0, _astArrayMutationHelpers.replaceInArray)(parent[replacementParent.key], replacementParent.targetIndex, Array.isArray(nodeToReplaceWith) ? nodeToReplaceWith : [nodeToReplaceWith]);
|
|
59
50
|
} else {
|
|
60
51
|
if (Array.isArray(nodeToReplaceWith)) {
|
|
61
52
|
throw new Error(`Cannot insert array into non-array parent type: ${parent.type}`);
|
|
62
53
|
}
|
|
63
|
-
|
|
64
54
|
parent[replacementParent.key] = nodeToReplaceWith;
|
|
65
55
|
}
|
|
66
56
|
}
|
|
67
|
-
|
|
68
57
|
function removeNodeOnParent(originalNode, originalNodeParent, visitorKeys) {
|
|
69
58
|
const replacementParent = getParentKey(originalNode, originalNodeParent, visitorKeys);
|
|
70
59
|
const parent = replacementParent.node;
|
|
71
|
-
|
|
72
60
|
if (replacementParent.type === 'array') {
|
|
73
61
|
parent[replacementParent.key] = (0, _astArrayMutationHelpers.removeFromArray)(parent[replacementParent.key], replacementParent.targetIndex);
|
|
74
62
|
} else {
|
|
75
63
|
parent[replacementParent.key] = null;
|
|
76
64
|
}
|
|
77
65
|
}
|
|
78
|
-
|
|
79
66
|
function setParentPointersInDirectChildren(node, visitorKeys) {
|
|
80
67
|
for (const key of (0, _getVisitorKeys.getVisitorKeys)(node, visitorKeys)) {
|
|
81
68
|
if ((0, _getVisitorKeys.isNode)(node[key])) {
|
|
@@ -87,54 +74,45 @@ function setParentPointersInDirectChildren(node, visitorKeys) {
|
|
|
87
74
|
}
|
|
88
75
|
}
|
|
89
76
|
}
|
|
90
|
-
|
|
91
77
|
function updateAllParentPointers(node, visitorKeys) {
|
|
92
78
|
_SimpleTraverser.SimpleTraverser.traverse(node, {
|
|
93
79
|
enter(node, parent) {
|
|
94
80
|
node.parent = parent;
|
|
95
81
|
},
|
|
96
|
-
|
|
97
82
|
leave() {},
|
|
98
|
-
|
|
99
83
|
visitorKeys
|
|
100
84
|
});
|
|
101
85
|
}
|
|
102
|
-
|
|
103
86
|
function nodeWith(node, overrideProps, visitorKeys) {
|
|
104
87
|
const willBeUnchanged = Object.entries(overrideProps).every(([key, value]) => {
|
|
105
88
|
const node_ = node;
|
|
106
|
-
|
|
107
89
|
if (Array.isArray(value)) {
|
|
108
90
|
return Array.isArray(node_[key]) ? (0, _astArrayMutationHelpers.arrayIsEqual)(node_[key], value) : false;
|
|
109
91
|
}
|
|
110
|
-
|
|
111
92
|
return node_[key] === value;
|
|
112
93
|
});
|
|
113
|
-
|
|
114
94
|
if (willBeUnchanged) {
|
|
115
95
|
return node;
|
|
116
96
|
}
|
|
117
|
-
|
|
118
|
-
|
|
97
|
+
const newNode = {
|
|
98
|
+
...node,
|
|
119
99
|
...overrideProps
|
|
120
100
|
};
|
|
121
101
|
setParentPointersInDirectChildren(newNode, visitorKeys);
|
|
122
102
|
return newNode;
|
|
123
103
|
}
|
|
124
|
-
|
|
125
104
|
function shallowCloneNode(node, visitorKeys) {
|
|
126
|
-
const newNode = {
|
|
105
|
+
const newNode = {
|
|
106
|
+
...node
|
|
127
107
|
};
|
|
128
108
|
setParentPointersInDirectChildren(newNode, visitorKeys);
|
|
129
109
|
return newNode;
|
|
130
110
|
}
|
|
131
|
-
|
|
132
111
|
function deepCloneNode(node, visitorKeys) {
|
|
133
112
|
const clone = JSON.parse(JSON.stringify(node, (key, value) => {
|
|
134
113
|
if (key === 'parent') {
|
|
135
114
|
return undefined;
|
|
136
115
|
}
|
|
137
|
-
|
|
138
116
|
return value;
|
|
139
117
|
}));
|
|
140
118
|
updateAllParentPointers(clone, visitorKeys);
|
|
@@ -4,14 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.SimpleTraverserSkip = exports.SimpleTraverserBreak = exports.SimpleTraverser = void 0;
|
|
7
|
-
|
|
8
7
|
var _getVisitorKeys = require("./getVisitorKeys");
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
exports.SimpleTraverserSkip = SimpleTraverserSkip;
|
|
12
|
-
const SimpleTraverserBreak = new Error();
|
|
13
|
-
exports.SimpleTraverserBreak = SimpleTraverserBreak;
|
|
14
|
-
|
|
8
|
+
const SimpleTraverserSkip = exports.SimpleTraverserSkip = new Error();
|
|
9
|
+
const SimpleTraverserBreak = exports.SimpleTraverserBreak = new Error();
|
|
15
10
|
class SimpleTraverser {
|
|
16
11
|
traverse(node, options) {
|
|
17
12
|
try {
|
|
@@ -20,35 +15,27 @@ class SimpleTraverser {
|
|
|
20
15
|
if (ex === SimpleTraverserBreak) {
|
|
21
16
|
return;
|
|
22
17
|
}
|
|
23
|
-
|
|
24
18
|
throw ex;
|
|
25
19
|
}
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
_traverse(node, parent, options) {
|
|
29
22
|
if (!(0, _getVisitorKeys.isNode)(node)) {
|
|
30
23
|
return;
|
|
31
24
|
}
|
|
32
|
-
|
|
33
25
|
try {
|
|
34
26
|
options.enter(node, parent);
|
|
35
27
|
} catch (ex) {
|
|
36
28
|
if (ex === SimpleTraverserSkip) {
|
|
37
29
|
return;
|
|
38
30
|
}
|
|
39
|
-
|
|
40
31
|
this._setErrorContext(ex, node);
|
|
41
|
-
|
|
42
32
|
throw ex;
|
|
43
33
|
}
|
|
44
|
-
|
|
45
34
|
const keys = (0, _getVisitorKeys.getVisitorKeys)(node, options.visitorKeys);
|
|
46
|
-
|
|
47
35
|
for (const key of keys) {
|
|
48
36
|
const lookupKey = key;
|
|
49
37
|
const childAny = node[lookupKey];
|
|
50
38
|
const child = childAny;
|
|
51
|
-
|
|
52
39
|
if (Array.isArray(child)) {
|
|
53
40
|
for (let j = 0; j < child.length; ++j) {
|
|
54
41
|
this._traverse(child[j], node, options);
|
|
@@ -57,20 +44,16 @@ class SimpleTraverser {
|
|
|
57
44
|
this._traverse(child, node, options);
|
|
58
45
|
}
|
|
59
46
|
}
|
|
60
|
-
|
|
61
47
|
try {
|
|
62
48
|
options.leave(node, parent);
|
|
63
49
|
} catch (ex) {
|
|
64
50
|
if (ex === SimpleTraverserSkip) {
|
|
65
51
|
return;
|
|
66
52
|
}
|
|
67
|
-
|
|
68
53
|
this._setErrorContext(ex, node);
|
|
69
|
-
|
|
70
54
|
throw ex;
|
|
71
55
|
}
|
|
72
56
|
}
|
|
73
|
-
|
|
74
57
|
_setErrorContext(ex, node) {
|
|
75
58
|
ex.currentNode = {
|
|
76
59
|
type: node.type,
|
|
@@ -78,13 +61,10 @@ class SimpleTraverser {
|
|
|
78
61
|
loc: node.loc
|
|
79
62
|
};
|
|
80
63
|
}
|
|
81
|
-
|
|
82
64
|
static traverse(node, options) {
|
|
83
65
|
new SimpleTraverser().traverse(node, options);
|
|
84
66
|
}
|
|
85
|
-
|
|
86
67
|
}
|
|
87
|
-
|
|
88
68
|
exports.SimpleTraverser = SimpleTraverser;
|
|
89
69
|
SimpleTraverser.Break = SimpleTraverserBreak;
|
|
90
70
|
SimpleTraverser.Skip = SimpleTraverserSkip;
|
|
@@ -5,25 +5,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getVisitorKeys = getVisitorKeys;
|
|
7
7
|
exports.isNode = isNode;
|
|
8
|
-
|
|
9
8
|
var _ESTreeVisitorKeys = _interopRequireDefault(require("../generated/ESTreeVisitorKeys"));
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
default: obj
|
|
9
|
+
function _interopRequireDefault(e) {
|
|
10
|
+
return e && e.__esModule ? e : {
|
|
11
|
+
default: e
|
|
14
12
|
};
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
function isNode(thing) {
|
|
18
15
|
return typeof thing === 'object' && thing != null && typeof thing.type === 'string';
|
|
19
16
|
}
|
|
20
|
-
|
|
21
17
|
function getVisitorKeys(node, visitorKeys) {
|
|
22
18
|
const keys = (visitorKeys != null ? visitorKeys : _ESTreeVisitorKeys.default)[node.type];
|
|
23
|
-
|
|
24
19
|
if (keys == null) {
|
|
25
20
|
throw new Error(`No visitor keys found for node type "${node.type}".`);
|
|
26
21
|
}
|
|
27
|
-
|
|
28
22
|
return keys;
|
|
29
23
|
}
|
package/dist/utils/Builders.js
CHANGED
|
@@ -17,16 +17,13 @@ exports.stringLiteral = stringLiteral;
|
|
|
17
17
|
exports.throwStatement = throwStatement;
|
|
18
18
|
exports.typeofExpression = typeofExpression;
|
|
19
19
|
exports.variableDeclaration = variableDeclaration;
|
|
20
|
-
const EMPTY_PARENT = null;
|
|
21
|
-
exports.EMPTY_PARENT = EMPTY_PARENT;
|
|
22
|
-
|
|
20
|
+
const EMPTY_PARENT = exports.EMPTY_PARENT = null;
|
|
23
21
|
function createDefaultPosition() {
|
|
24
22
|
return {
|
|
25
23
|
line: 1,
|
|
26
24
|
column: 0
|
|
27
25
|
};
|
|
28
26
|
}
|
|
29
|
-
|
|
30
27
|
function etc({
|
|
31
28
|
loc,
|
|
32
29
|
range,
|
|
@@ -41,7 +38,6 @@ function etc({
|
|
|
41
38
|
parent: parent != null ? parent : EMPTY_PARENT
|
|
42
39
|
};
|
|
43
40
|
}
|
|
44
|
-
|
|
45
41
|
function ident(name, info) {
|
|
46
42
|
return {
|
|
47
43
|
type: 'Identifier',
|
|
@@ -51,7 +47,6 @@ function ident(name, info) {
|
|
|
51
47
|
...etc(info)
|
|
52
48
|
};
|
|
53
49
|
}
|
|
54
|
-
|
|
55
50
|
function stringLiteral(value, info) {
|
|
56
51
|
return {
|
|
57
52
|
type: 'Literal',
|
|
@@ -61,7 +56,6 @@ function stringLiteral(value, info) {
|
|
|
61
56
|
...etc(info)
|
|
62
57
|
};
|
|
63
58
|
}
|
|
64
|
-
|
|
65
59
|
function numberLiteral(value, info) {
|
|
66
60
|
return {
|
|
67
61
|
type: 'Literal',
|
|
@@ -71,7 +65,6 @@ function numberLiteral(value, info) {
|
|
|
71
65
|
...etc(info)
|
|
72
66
|
};
|
|
73
67
|
}
|
|
74
|
-
|
|
75
68
|
function nullLiteral(info) {
|
|
76
69
|
return {
|
|
77
70
|
type: 'Literal',
|
|
@@ -81,12 +74,10 @@ function nullLiteral(info) {
|
|
|
81
74
|
...etc(info)
|
|
82
75
|
};
|
|
83
76
|
}
|
|
84
|
-
|
|
85
77
|
function conjunction(tests) {
|
|
86
78
|
if (tests.length === 0) {
|
|
87
79
|
throw new Error('Must have at least one test.');
|
|
88
80
|
}
|
|
89
|
-
|
|
90
81
|
return tests.reduce((acc, test) => ({
|
|
91
82
|
type: 'LogicalExpression',
|
|
92
83
|
left: acc,
|
|
@@ -95,12 +86,10 @@ function conjunction(tests) {
|
|
|
95
86
|
...etc()
|
|
96
87
|
}));
|
|
97
88
|
}
|
|
98
|
-
|
|
99
89
|
function disjunction(tests) {
|
|
100
90
|
if (tests.length === 0) {
|
|
101
91
|
throw new Error('Must have at least one test.');
|
|
102
92
|
}
|
|
103
|
-
|
|
104
93
|
return tests.reduce((acc, test) => ({
|
|
105
94
|
type: 'LogicalExpression',
|
|
106
95
|
left: acc,
|
|
@@ -109,7 +98,6 @@ function disjunction(tests) {
|
|
|
109
98
|
...etc()
|
|
110
99
|
}));
|
|
111
100
|
}
|
|
112
|
-
|
|
113
101
|
function variableDeclaration(kind, id, init, info) {
|
|
114
102
|
return {
|
|
115
103
|
type: 'VariableDeclaration',
|
|
@@ -124,7 +112,6 @@ function variableDeclaration(kind, id, init, info) {
|
|
|
124
112
|
...etc(info)
|
|
125
113
|
};
|
|
126
114
|
}
|
|
127
|
-
|
|
128
115
|
function callExpression(callee, args, info) {
|
|
129
116
|
return {
|
|
130
117
|
type: 'CallExpression',
|
|
@@ -135,7 +122,6 @@ function callExpression(callee, args, info) {
|
|
|
135
122
|
...etc(info)
|
|
136
123
|
};
|
|
137
124
|
}
|
|
138
|
-
|
|
139
125
|
function throwStatement(arg, info) {
|
|
140
126
|
return {
|
|
141
127
|
type: 'ThrowStatement',
|
|
@@ -143,7 +129,6 @@ function throwStatement(arg, info) {
|
|
|
143
129
|
...etc(info)
|
|
144
130
|
};
|
|
145
131
|
}
|
|
146
|
-
|
|
147
132
|
function iife(statements, params = [], args = []) {
|
|
148
133
|
const callee = {
|
|
149
134
|
type: 'ArrowFunctionExpression',
|
|
@@ -163,7 +148,6 @@ function iife(statements, params = [], args = []) {
|
|
|
163
148
|
};
|
|
164
149
|
return callExpression(callee, args);
|
|
165
150
|
}
|
|
166
|
-
|
|
167
151
|
function typeofExpression(arg, kind) {
|
|
168
152
|
return {
|
|
169
153
|
type: 'BinaryExpression',
|
package/dist/utils/GenID.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
const genPrefix = '$$gen$';
|
|
8
|
-
|
|
9
8
|
class GenID {
|
|
10
9
|
constructor(uniqueTransformPrefix) {
|
|
11
10
|
this.genN = 0;
|
|
@@ -13,25 +12,19 @@ class GenID {
|
|
|
13
12
|
this.prefix = void 0;
|
|
14
13
|
this.prefix = `${genPrefix}${uniqueTransformPrefix}`;
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
id() {
|
|
18
16
|
let name;
|
|
19
|
-
|
|
20
17
|
do {
|
|
21
18
|
name = `${this.prefix}${this.genN}`;
|
|
22
19
|
this.genN++;
|
|
23
20
|
} while (this.used.has(name));
|
|
24
|
-
|
|
25
21
|
this.used.add(name);
|
|
26
22
|
return name;
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
addUsage(name) {
|
|
30
25
|
if (name.startsWith(this.prefix)) {
|
|
31
26
|
this.used.add(name);
|
|
32
27
|
}
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
}
|
|
36
|
-
|
|
37
30
|
exports.default = GenID;
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = isReservedWord;
|
|
7
|
-
|
|
8
7
|
function isReservedWord(name) {
|
|
9
8
|
switch (name) {
|
|
10
9
|
case 'await':
|
|
@@ -46,7 +45,6 @@ function isReservedWord(name) {
|
|
|
46
45
|
case 'with':
|
|
47
46
|
case 'yield':
|
|
48
47
|
return true;
|
|
49
|
-
|
|
50
48
|
default:
|
|
51
49
|
return false;
|
|
52
50
|
}
|
|
@@ -4,82 +4,67 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = mutate;
|
|
7
|
-
|
|
8
7
|
var _SimpleTransform = require("../transform/SimpleTransform");
|
|
9
|
-
|
|
10
8
|
function transformChainExpression(node, comments) {
|
|
11
9
|
if (comments != null) {
|
|
12
10
|
var _node$comments;
|
|
13
|
-
|
|
14
11
|
const joinedComments = comments.concat((_node$comments = node.comments) != null ? _node$comments : []);
|
|
15
12
|
node.comments = joinedComments;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
switch (node.type) {
|
|
19
15
|
case 'CallExpression':
|
|
20
|
-
return {
|
|
16
|
+
return {
|
|
17
|
+
...node,
|
|
21
18
|
type: 'OptionalCallExpression',
|
|
22
19
|
callee: transformChainExpression(node.callee)
|
|
23
20
|
};
|
|
24
|
-
|
|
25
21
|
case 'MemberExpression':
|
|
26
|
-
return {
|
|
22
|
+
return {
|
|
23
|
+
...node,
|
|
27
24
|
type: 'OptionalMemberExpression',
|
|
28
25
|
object: transformChainExpression(node.object)
|
|
29
26
|
};
|
|
30
27
|
}
|
|
31
|
-
|
|
32
28
|
return node;
|
|
33
29
|
}
|
|
34
|
-
|
|
35
30
|
function mutate(rootNode, visitorKeys) {
|
|
36
31
|
_SimpleTransform.SimpleTransform.transform(rootNode, {
|
|
37
32
|
transform(node) {
|
|
38
33
|
if (node.parent) {
|
|
39
34
|
delete node.parent;
|
|
40
35
|
}
|
|
41
|
-
|
|
42
36
|
if (node.type === 'ChainExpression') {
|
|
43
37
|
return transformChainExpression(node.expression, node == null ? void 0 : node.comments);
|
|
44
38
|
}
|
|
45
|
-
|
|
46
39
|
if (node.type === 'ObjectTypeProperty') {
|
|
47
40
|
if (node.method === false && node.kind === 'init' && node.range[0] === 1 && node.value.range[0] === 1) {
|
|
48
|
-
node.value = {
|
|
41
|
+
node.value = {
|
|
42
|
+
...node.value,
|
|
49
43
|
range: [2, node.value.range[1]]
|
|
50
44
|
};
|
|
51
45
|
}
|
|
52
|
-
|
|
53
46
|
return node;
|
|
54
47
|
}
|
|
55
|
-
|
|
56
48
|
if (node.type === 'ImportSpecifier') {
|
|
57
49
|
if (node.local.name === node.imported.name) {
|
|
58
50
|
if (node.local.range == null) {
|
|
59
51
|
node.local.range = [0, 0];
|
|
60
52
|
}
|
|
61
|
-
|
|
62
53
|
node.imported.range = [...node.local.range];
|
|
63
54
|
}
|
|
64
|
-
|
|
65
55
|
return node;
|
|
66
56
|
}
|
|
67
|
-
|
|
68
57
|
if (node.type === 'ExportSpecifier') {
|
|
69
58
|
if (node.local.name === node.exported.name) {
|
|
70
59
|
if (node.local.range == null) {
|
|
71
60
|
node.local.range = [0, 0];
|
|
72
61
|
}
|
|
73
|
-
|
|
74
62
|
node.exported.range = [...node.local.range];
|
|
75
63
|
}
|
|
76
|
-
|
|
77
64
|
return node;
|
|
78
65
|
}
|
|
79
|
-
|
|
80
66
|
return node;
|
|
81
67
|
},
|
|
82
|
-
|
|
83
68
|
visitorKeys
|
|
84
69
|
});
|
|
85
70
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-parser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.323.0",
|
|
4
4
|
"description": "JavaScript parser written in OCaml. Produces ESTree AST",
|
|
5
5
|
"homepage": "https://flow.org",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test": "node test/run_tests.js"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"flow-estree": "0.
|
|
25
|
+
"flow-estree": "0.323.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/generator": "7.7.4",
|