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
|
@@ -4,66 +4,50 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.transformProgram = transformProgram;
|
|
7
|
-
|
|
8
7
|
var _flowEstree = require("flow-estree");
|
|
9
|
-
|
|
10
8
|
var _SimpleTransform = require("../transform/SimpleTransform");
|
|
11
|
-
|
|
12
9
|
var _astNodeMutationHelpers = require("../transform/astNodeMutationHelpers");
|
|
13
|
-
|
|
14
10
|
var _Builders = require("../utils/Builders");
|
|
15
|
-
|
|
16
11
|
var _isReservedWord = _interopRequireDefault(require("../utils/isReservedWord"));
|
|
17
|
-
|
|
18
12
|
var _GenID = _interopRequireDefault(require("../utils/GenID"));
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
default: obj
|
|
13
|
+
function _interopRequireDefault(e) {
|
|
14
|
+
return e && e.__esModule ? e : {
|
|
15
|
+
default: e
|
|
23
16
|
};
|
|
24
17
|
}
|
|
25
|
-
|
|
26
18
|
function nameOfKey(key) {
|
|
27
19
|
switch (key.type) {
|
|
28
20
|
case 'Identifier':
|
|
29
21
|
return key.name;
|
|
30
|
-
|
|
31
22
|
case 'Literal':
|
|
32
23
|
if ((0, _flowEstree.isBigIntLiteral)(key)) {
|
|
33
24
|
return key.bigint;
|
|
34
25
|
}
|
|
35
|
-
|
|
36
26
|
return String(key.value);
|
|
37
27
|
}
|
|
38
28
|
}
|
|
39
|
-
|
|
40
29
|
function mapRecordDeclaration(genID, node) {
|
|
41
30
|
const ownProperties = [];
|
|
42
31
|
const staticProperties = [];
|
|
43
32
|
const methods = [];
|
|
44
33
|
const staticMethods = [];
|
|
45
|
-
|
|
46
34
|
for (const element of node.body.elements) {
|
|
47
35
|
switch (element.type) {
|
|
48
36
|
case 'RecordDeclarationProperty':
|
|
49
37
|
ownProperties.push(element);
|
|
50
38
|
break;
|
|
51
|
-
|
|
52
39
|
case 'RecordDeclarationStaticProperty':
|
|
53
40
|
staticProperties.push(element);
|
|
54
41
|
break;
|
|
55
|
-
|
|
56
42
|
case 'MethodDefinition':
|
|
57
43
|
if (element.static) {
|
|
58
44
|
staticMethods.push(element);
|
|
59
45
|
} else {
|
|
60
46
|
methods.push(element);
|
|
61
47
|
}
|
|
62
|
-
|
|
63
48
|
break;
|
|
64
49
|
}
|
|
65
50
|
}
|
|
66
|
-
|
|
67
51
|
const reservedPropNames = new Map();
|
|
68
52
|
const constructorParam = {
|
|
69
53
|
type: 'ObjectPattern',
|
|
@@ -73,25 +57,21 @@ function mapRecordDeclaration(genID, node) {
|
|
|
73
57
|
defaultValue
|
|
74
58
|
} = prop;
|
|
75
59
|
const keyName = nameOfKey(key);
|
|
76
|
-
|
|
77
60
|
const getValue = bindingIdent => defaultValue != null ? {
|
|
78
61
|
type: 'AssignmentPattern',
|
|
79
62
|
left: bindingIdent,
|
|
80
63
|
right: (0, _astNodeMutationHelpers.deepCloneNode)(defaultValue),
|
|
81
64
|
...(0, _Builders.etc)()
|
|
82
65
|
} : bindingIdent;
|
|
83
|
-
|
|
84
66
|
switch (key.type) {
|
|
85
67
|
case 'Identifier':
|
|
86
68
|
{
|
|
87
69
|
const needsNewBinding = (0, _isReservedWord.default)(keyName);
|
|
88
70
|
const bindingName = needsNewBinding ? genID.id() : keyName;
|
|
89
71
|
const bindingIdent = (0, _Builders.ident)(bindingName);
|
|
90
|
-
|
|
91
72
|
if (needsNewBinding) {
|
|
92
73
|
reservedPropNames.set(keyName, bindingName);
|
|
93
74
|
}
|
|
94
|
-
|
|
95
75
|
if (needsNewBinding) {
|
|
96
76
|
return {
|
|
97
77
|
type: 'Property',
|
|
@@ -118,7 +98,6 @@ function mapRecordDeclaration(genID, node) {
|
|
|
118
98
|
};
|
|
119
99
|
}
|
|
120
100
|
}
|
|
121
|
-
|
|
122
101
|
case 'Literal':
|
|
123
102
|
{
|
|
124
103
|
const bindingName = genID.id();
|
|
@@ -158,7 +137,6 @@ function mapRecordDeclaration(genID, node) {
|
|
|
158
137
|
key
|
|
159
138
|
}) => {
|
|
160
139
|
var _reservedPropNames$ge;
|
|
161
|
-
|
|
162
140
|
const keyName = nameOfKey(key);
|
|
163
141
|
const bindingIdent = (0, _Builders.ident)((_reservedPropNames$ge = reservedPropNames.get(keyName)) != null ? _reservedPropNames$ge : keyName);
|
|
164
142
|
const object = {
|
|
@@ -237,7 +215,6 @@ function mapRecordDeclaration(genID, node) {
|
|
|
237
215
|
...(0, _Builders.etc)()
|
|
238
216
|
};
|
|
239
217
|
}
|
|
240
|
-
|
|
241
218
|
function mapRecordExpression(node) {
|
|
242
219
|
const obj = {
|
|
243
220
|
type: 'ObjectExpression',
|
|
@@ -252,7 +229,6 @@ function mapRecordExpression(node) {
|
|
|
252
229
|
...(0, _Builders.etc)()
|
|
253
230
|
};
|
|
254
231
|
}
|
|
255
|
-
|
|
256
232
|
function transformProgram(program, _options) {
|
|
257
233
|
const genID = new _GenID.default('r');
|
|
258
234
|
return _SimpleTransform.SimpleTransform.transformProgram(program, {
|
|
@@ -262,22 +238,18 @@ function transformProgram(program, _options) {
|
|
|
262
238
|
{
|
|
263
239
|
return mapRecordDeclaration(genID, node);
|
|
264
240
|
}
|
|
265
|
-
|
|
266
241
|
case 'RecordExpression':
|
|
267
242
|
{
|
|
268
243
|
return mapRecordExpression(node);
|
|
269
244
|
}
|
|
270
|
-
|
|
271
245
|
case 'Identifier':
|
|
272
246
|
{
|
|
273
247
|
genID.addUsage(node.name);
|
|
274
248
|
return node;
|
|
275
249
|
}
|
|
276
|
-
|
|
277
250
|
default:
|
|
278
251
|
return node;
|
|
279
252
|
}
|
|
280
253
|
}
|
|
281
|
-
|
|
282
254
|
});
|
|
283
255
|
}
|
|
@@ -6,80 +6,59 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getModuleDocblock = getModuleDocblock;
|
|
7
7
|
exports.parseDocblockString = parseDocblockString;
|
|
8
8
|
const DIRECTIVE_REGEX = /^\s*@([a-zA-Z0-9_-]+)( +.+)?$/;
|
|
9
|
-
|
|
10
9
|
function parseDocblockString(docblock) {
|
|
11
10
|
const directiveLines = docblock.split('\n').map(line => line.trimStart().replace(/^\* ?/, '').trim()).filter(line => line.startsWith('@'));
|
|
12
11
|
const directives = Object.create(null);
|
|
13
|
-
|
|
14
12
|
for (const line of directiveLines) {
|
|
15
13
|
var _match$;
|
|
16
|
-
|
|
17
14
|
const match = DIRECTIVE_REGEX.exec(line);
|
|
18
|
-
|
|
19
15
|
if (match == null) {
|
|
20
16
|
continue;
|
|
21
17
|
}
|
|
22
|
-
|
|
23
18
|
const name = match[1];
|
|
24
19
|
const value = ((_match$ = match[2]) != null ? _match$ : '').trim();
|
|
25
|
-
|
|
26
20
|
if (directives[name]) {
|
|
27
21
|
directives[name].push(value);
|
|
28
22
|
} else {
|
|
29
23
|
directives[name] = [value];
|
|
30
24
|
}
|
|
31
25
|
}
|
|
32
|
-
|
|
33
26
|
return directives;
|
|
34
27
|
}
|
|
35
|
-
|
|
36
28
|
function getModuleDocblock(hermesProgram) {
|
|
37
29
|
const docblockNode = (() => {
|
|
38
30
|
if (hermesProgram.type !== 'Program') {
|
|
39
31
|
return null;
|
|
40
32
|
}
|
|
41
|
-
|
|
42
33
|
const program = hermesProgram;
|
|
43
|
-
|
|
44
34
|
if (program.comments.length === 0) {
|
|
45
35
|
return null;
|
|
46
36
|
}
|
|
47
|
-
|
|
48
37
|
const firstComment = (() => {
|
|
49
38
|
const first = program.comments[0];
|
|
50
|
-
|
|
51
39
|
if (first.type === 'Block') {
|
|
52
40
|
return first;
|
|
53
41
|
}
|
|
54
|
-
|
|
55
42
|
if (program.comments.length === 1) {
|
|
56
43
|
return null;
|
|
57
44
|
}
|
|
58
|
-
|
|
59
45
|
const second = program.comments[1];
|
|
60
|
-
|
|
61
46
|
if (first.type === 'Line' && first.range[0] === 0 && second.type === 'Block') {
|
|
62
47
|
return second;
|
|
63
48
|
}
|
|
64
|
-
|
|
65
49
|
return null;
|
|
66
50
|
})();
|
|
67
|
-
|
|
68
51
|
if (firstComment == null) {
|
|
69
52
|
return null;
|
|
70
53
|
}
|
|
71
|
-
|
|
72
54
|
if (program.body.length > 0 && program.body[0].range[0] < firstComment.range[0]) {
|
|
73
55
|
return null;
|
|
74
56
|
}
|
|
75
|
-
|
|
76
57
|
return firstComment;
|
|
77
58
|
})();
|
|
78
|
-
|
|
79
59
|
if (docblockNode == null) {
|
|
80
60
|
return null;
|
|
81
61
|
}
|
|
82
|
-
|
|
83
62
|
return {
|
|
84
63
|
directives: parseDocblockString(docblockNode.value),
|
|
85
64
|
comment: docblockNode
|
package/dist/index.js
CHANGED
|
@@ -13,208 +13,134 @@ var _exportNames = {
|
|
|
13
13
|
};
|
|
14
14
|
exports.mutateESTreeASTForPrettier = exports.astNodeMutationHelpers = exports.astArrayMutationHelpers = exports.Transforms = void 0;
|
|
15
15
|
exports.parse = parse;
|
|
16
|
-
|
|
17
16
|
var FlowParser = _interopRequireWildcard(require("./FlowParser"));
|
|
18
|
-
|
|
19
17
|
var _ESTreeVisitorKeys = _interopRequireDefault(require("./generated/ESTreeVisitorKeys"));
|
|
20
|
-
|
|
21
18
|
exports.FlowVisitorKeys = _ESTreeVisitorKeys.default;
|
|
22
|
-
|
|
23
19
|
var TransformComponentSyntax = _interopRequireWildcard(require("./estree/TransformComponentSyntax"));
|
|
24
|
-
|
|
25
20
|
var TransformEnumSyntax = _interopRequireWildcard(require("./estree/TransformEnumSyntax"));
|
|
26
|
-
|
|
27
21
|
var TransformMatchSyntax = _interopRequireWildcard(require("./estree/TransformMatchSyntax"));
|
|
28
|
-
|
|
29
22
|
var TransformRecordSyntax = _interopRequireWildcard(require("./estree/TransformRecordSyntax"));
|
|
30
|
-
|
|
31
23
|
var StripFlowTypesForBabel = _interopRequireWildcard(require("./estree/StripFlowTypesForBabel"));
|
|
32
|
-
|
|
33
24
|
var TransformESTreeToBabel = _interopRequireWildcard(require("./babel/TransformESTreeToBabel"));
|
|
34
|
-
|
|
35
25
|
var StripFlowTypes = _interopRequireWildcard(require("./estree/StripFlowTypes"));
|
|
36
|
-
|
|
37
26
|
var _ParserOptions = require("./ParserOptions");
|
|
38
|
-
|
|
39
27
|
Object.keys(_ParserOptions).forEach(function (key) {
|
|
40
28
|
if (key === "default" || key === "__esModule") return;
|
|
41
29
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
42
30
|
if (key in exports && exports[key] === _ParserOptions[key]) return;
|
|
43
31
|
exports[key] = _ParserOptions[key];
|
|
44
32
|
});
|
|
45
|
-
|
|
46
33
|
var _SimpleTraverser = require("./traverse/SimpleTraverser");
|
|
47
|
-
|
|
48
34
|
Object.keys(_SimpleTraverser).forEach(function (key) {
|
|
49
35
|
if (key === "default" || key === "__esModule") return;
|
|
50
36
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
51
37
|
if (key in exports && exports[key] === _SimpleTraverser[key]) return;
|
|
52
38
|
exports[key] = _SimpleTraverser[key];
|
|
53
39
|
});
|
|
54
|
-
|
|
55
40
|
var _SimpleTransform = require("./transform/SimpleTransform");
|
|
56
|
-
|
|
57
41
|
Object.keys(_SimpleTransform).forEach(function (key) {
|
|
58
42
|
if (key === "default" || key === "__esModule") return;
|
|
59
43
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
60
44
|
if (key in exports && exports[key] === _SimpleTransform[key]) return;
|
|
61
45
|
exports[key] = _SimpleTransform[key];
|
|
62
46
|
});
|
|
63
|
-
|
|
64
47
|
var _getVisitorKeys = require("./traverse/getVisitorKeys");
|
|
65
|
-
|
|
66
48
|
Object.keys(_getVisitorKeys).forEach(function (key) {
|
|
67
49
|
if (key === "default" || key === "__esModule") return;
|
|
68
50
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
69
51
|
if (key in exports && exports[key] === _getVisitorKeys[key]) return;
|
|
70
52
|
exports[key] = _getVisitorKeys[key];
|
|
71
53
|
});
|
|
72
|
-
|
|
73
54
|
var _astArrayMutationHelpers = _interopRequireWildcard(require("./transform/astArrayMutationHelpers"));
|
|
74
|
-
|
|
75
55
|
exports.astArrayMutationHelpers = _astArrayMutationHelpers;
|
|
76
|
-
|
|
77
56
|
var _astNodeMutationHelpers = _interopRequireWildcard(require("./transform/astNodeMutationHelpers"));
|
|
78
|
-
|
|
79
57
|
exports.astNodeMutationHelpers = _astNodeMutationHelpers;
|
|
80
|
-
|
|
81
58
|
var _mutateESTreeASTForPrettier = _interopRequireDefault(require("./utils/mutateESTreeASTForPrettier"));
|
|
82
|
-
|
|
83
59
|
exports.mutateESTreeASTForPrettier = _mutateESTreeASTForPrettier.default;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
default: obj
|
|
60
|
+
function _interopRequireDefault(e) {
|
|
61
|
+
return e && e.__esModule ? e : {
|
|
62
|
+
default: e
|
|
88
63
|
};
|
|
89
64
|
}
|
|
90
|
-
|
|
91
|
-
function
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
106
|
-
return {
|
|
107
|
-
default: obj
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
112
|
-
|
|
113
|
-
if (cache && cache.has(obj)) {
|
|
114
|
-
return cache.get(obj);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
var newObj = {};
|
|
118
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
119
|
-
|
|
120
|
-
for (var key in obj) {
|
|
121
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
122
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
123
|
-
|
|
124
|
-
if (desc && (desc.get || desc.set)) {
|
|
125
|
-
Object.defineProperty(newObj, key, desc);
|
|
126
|
-
} else {
|
|
127
|
-
newObj[key] = obj[key];
|
|
128
|
-
}
|
|
65
|
+
function _interopRequireWildcard(e, t) {
|
|
66
|
+
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
|
67
|
+
n = new WeakMap();
|
|
68
|
+
return (_interopRequireWildcard = function (e, t) {
|
|
69
|
+
if (!t && e && e.__esModule) return e;
|
|
70
|
+
var o,
|
|
71
|
+
i,
|
|
72
|
+
f = {
|
|
73
|
+
__proto__: null,
|
|
74
|
+
default: e
|
|
75
|
+
};
|
|
76
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
|
77
|
+
if (o = t ? n : r) {
|
|
78
|
+
if (o.has(e)) return o.get(e);
|
|
79
|
+
o.set(e, f);
|
|
129
80
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if (cache) {
|
|
135
|
-
cache.set(obj, newObj);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
return newObj;
|
|
81
|
+
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
|
82
|
+
return f;
|
|
83
|
+
})(e, t);
|
|
139
84
|
}
|
|
140
|
-
|
|
141
85
|
const DEFAULTS = {
|
|
142
86
|
flow: 'detect'
|
|
143
87
|
};
|
|
144
|
-
|
|
145
88
|
function getOptions(opts) {
|
|
146
|
-
const options = {
|
|
89
|
+
const options = {
|
|
90
|
+
...DEFAULTS,
|
|
147
91
|
...(opts != null ? opts : {})
|
|
148
92
|
};
|
|
149
|
-
|
|
150
93
|
if (options.flow !== 'all' && options.flow !== 'detect') {
|
|
151
94
|
throw new Error('flow option must be "all" or "detect"');
|
|
152
95
|
}
|
|
153
|
-
|
|
154
96
|
if (options.sourceType === 'unambiguous') {
|
|
155
97
|
delete options.sourceType;
|
|
156
98
|
} else if (options.sourceType != null && options.sourceType !== 'script' && options.sourceType !== 'module') {
|
|
157
99
|
throw new Error('sourceType option must be "script", "module", or "unambiguous" if set');
|
|
158
100
|
}
|
|
159
|
-
|
|
160
101
|
if (options.enableExperimentalComponentSyntax == null) {
|
|
161
102
|
options.enableExperimentalComponentSyntax = true;
|
|
162
103
|
}
|
|
163
|
-
|
|
164
104
|
if (options.enableExperimentalFlowMatchSyntax == null) {
|
|
165
105
|
options.enableExperimentalFlowMatchSyntax = true;
|
|
166
106
|
}
|
|
167
|
-
|
|
168
107
|
if (options.enableExperimentalFlowRecordSyntax == null) {
|
|
169
108
|
options.enableExperimentalFlowRecordSyntax = true;
|
|
170
109
|
}
|
|
171
|
-
|
|
172
110
|
options.enableRecords = options.enableExperimentalFlowRecordSyntax;
|
|
173
|
-
|
|
174
111
|
if (options.enableEnums == null) {
|
|
175
112
|
options.enableEnums = true;
|
|
176
113
|
}
|
|
177
|
-
|
|
178
114
|
if (options.enableExperimentalDecorators == null) {
|
|
179
115
|
options.enableExperimentalDecorators = true;
|
|
180
116
|
}
|
|
181
|
-
|
|
182
117
|
options.tokens = options.tokens === true;
|
|
183
118
|
options.allowReturnOutsideFunction = options.allowReturnOutsideFunction === true;
|
|
184
119
|
return options;
|
|
185
120
|
}
|
|
186
|
-
|
|
187
121
|
function parse(code, opts) {
|
|
188
122
|
var _options$transformOpt, _options$transformOpt2;
|
|
189
|
-
|
|
190
123
|
const options = getOptions(opts);
|
|
191
|
-
|
|
192
124
|
if (options.flow === 'all') {
|
|
193
125
|
options.enableTypes = true;
|
|
194
126
|
} else {
|
|
195
127
|
options.enableTypesPragmaDetection = true;
|
|
196
128
|
}
|
|
197
|
-
|
|
198
129
|
const estreeAST = FlowParser.parse(code, options);
|
|
199
|
-
|
|
200
130
|
if (options.babel !== true) {
|
|
201
131
|
return estreeAST;
|
|
202
132
|
}
|
|
203
|
-
|
|
204
133
|
const loweredESTreeAST = [(_options$transformOpt = options.transformOptions) != null && (_options$transformOpt2 = _options$transformOpt.TransformEnumSyntax) != null && _options$transformOpt2.enable ? TransformEnumSyntax.transformProgram : null, TransformMatchSyntax.transformProgram, TransformComponentSyntax.transformProgram, TransformRecordSyntax.transformProgram, StripFlowTypesForBabel.transformProgram].reduce((ast, transform) => {
|
|
205
134
|
var _transform;
|
|
206
|
-
|
|
207
135
|
return (_transform = transform == null ? void 0 : transform(ast, options)) != null ? _transform : ast;
|
|
208
136
|
}, estreeAST);
|
|
209
137
|
return TransformESTreeToBabel.transformProgram(loweredESTreeAST, options);
|
|
210
138
|
}
|
|
211
|
-
|
|
212
|
-
const Transforms = {
|
|
139
|
+
const Transforms = exports.Transforms = {
|
|
213
140
|
transformEnumSyntax: TransformEnumSyntax.transformProgram,
|
|
214
141
|
transformMatchSyntax: TransformMatchSyntax.transformProgram,
|
|
215
142
|
transformComponentSyntax: TransformComponentSyntax.transformProgram,
|
|
216
143
|
transformRecordSyntax: TransformRecordSyntax.transformProgram,
|
|
217
144
|
stripFlowTypesForBabel: StripFlowTypesForBabel.transformProgram,
|
|
218
145
|
stripFlowTypes: StripFlowTypes.transformProgram
|
|
219
|
-
};
|
|
220
|
-
exports.Transforms = Transforms;
|
|
146
|
+
};
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.SimpleTransform = void 0;
|
|
7
|
-
|
|
8
7
|
var _SimpleTraverser = require("../traverse/SimpleTraverser");
|
|
9
|
-
|
|
10
8
|
var _astNodeMutationHelpers = require("./astNodeMutationHelpers");
|
|
11
|
-
|
|
12
9
|
function setParentPointer(node, parent) {
|
|
13
10
|
if (parent != null) {
|
|
14
11
|
if (Array.isArray(node)) {
|
|
@@ -20,34 +17,27 @@ function setParentPointer(node, parent) {
|
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
|
|
24
20
|
class SimpleTransform {
|
|
25
21
|
transform(rootNode, options) {
|
|
26
22
|
let resultRootNode = rootNode;
|
|
27
|
-
|
|
28
23
|
_SimpleTraverser.SimpleTraverser.traverse(rootNode, {
|
|
29
24
|
enter: (node, parent) => {
|
|
30
25
|
setParentPointer(node, parent);
|
|
31
26
|
const resultNode = options.transform(node);
|
|
32
|
-
|
|
33
27
|
if (resultNode !== node) {
|
|
34
28
|
let traversedResultNode = null;
|
|
35
|
-
|
|
36
29
|
if (resultNode != null) {
|
|
37
30
|
setParentPointer(resultNode, parent);
|
|
38
|
-
|
|
39
31
|
if (Array.isArray(resultNode)) {
|
|
40
32
|
traversedResultNode = resultNode.map(item => this.transform(item, options)).filter(item => item != null);
|
|
41
33
|
} else {
|
|
42
34
|
traversedResultNode = this.transform(resultNode, options);
|
|
43
35
|
}
|
|
44
36
|
}
|
|
45
|
-
|
|
46
37
|
if (parent == null) {
|
|
47
38
|
if (node !== rootNode) {
|
|
48
39
|
throw new Error('SimpleTransform infra error: Parent not set on non root node, this should not be possible');
|
|
49
40
|
}
|
|
50
|
-
|
|
51
41
|
if (Array.isArray(traversedResultNode)) {
|
|
52
42
|
throw new Error('SimpleTransform: invalid array result for root node');
|
|
53
43
|
} else {
|
|
@@ -59,37 +49,26 @@ class SimpleTransform {
|
|
|
59
49
|
(0, _astNodeMutationHelpers.replaceNodeOnParent)(node, parent, traversedResultNode, options.visitorKeys);
|
|
60
50
|
setParentPointer(traversedResultNode, parent);
|
|
61
51
|
}
|
|
62
|
-
|
|
63
52
|
throw _SimpleTraverser.SimpleTraverser.Skip;
|
|
64
53
|
}
|
|
65
54
|
},
|
|
66
|
-
|
|
67
55
|
leave(_node) {},
|
|
68
|
-
|
|
69
56
|
visitorKeys: options.visitorKeys
|
|
70
57
|
});
|
|
71
|
-
|
|
72
58
|
return resultRootNode;
|
|
73
59
|
}
|
|
74
|
-
|
|
75
60
|
static transform(node, options) {
|
|
76
61
|
return new SimpleTransform().transform(node, options);
|
|
77
62
|
}
|
|
78
|
-
|
|
79
63
|
static transformProgram(program, options) {
|
|
80
64
|
const result = SimpleTransform.transform(program, options);
|
|
81
|
-
|
|
82
65
|
if ((result == null ? void 0 : result.type) === 'Program') {
|
|
83
66
|
return result;
|
|
84
67
|
}
|
|
85
|
-
|
|
86
68
|
throw new Error('SimpleTransform.transformProgram: Expected program node.');
|
|
87
69
|
}
|
|
88
|
-
|
|
89
70
|
static nodeWith(node, overrideProps, visitorKeys) {
|
|
90
71
|
return (0, _astNodeMutationHelpers.nodeWith)(node, overrideProps, visitorKeys);
|
|
91
72
|
}
|
|
92
|
-
|
|
93
73
|
}
|
|
94
|
-
|
|
95
74
|
exports.SimpleTransform = SimpleTransform;
|
|
@@ -7,45 +7,36 @@ exports.arrayIsEqual = arrayIsEqual;
|
|
|
7
7
|
exports.insertInArray = insertInArray;
|
|
8
8
|
exports.removeFromArray = removeFromArray;
|
|
9
9
|
exports.replaceInArray = replaceInArray;
|
|
10
|
-
|
|
11
10
|
function assertArrayBounds(array, index) {
|
|
12
11
|
if (index < 0 || index >= array.length) {
|
|
13
12
|
throw new Error(`Invalid Mutation: Tried to mutate an elements array with an out of bounds index. Index: ${index}, Array Size: ${array.length}`);
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
function arrayIsEqual(a1, a2) {
|
|
18
16
|
if (a1 === a2) {
|
|
19
17
|
return true;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
if (a1.length !== a2.length) {
|
|
23
20
|
return false;
|
|
24
21
|
}
|
|
25
|
-
|
|
26
22
|
for (let i = 0; i < a1.length; i++) {
|
|
27
23
|
if (a1[i] !== a2[i]) {
|
|
28
24
|
return false;
|
|
29
25
|
}
|
|
30
26
|
}
|
|
31
|
-
|
|
32
27
|
return true;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
function insertInArray(array, index, elements) {
|
|
36
30
|
if (index === array.length) {
|
|
37
31
|
return array.concat(elements);
|
|
38
32
|
}
|
|
39
|
-
|
|
40
33
|
assertArrayBounds(array, index);
|
|
41
34
|
return array.slice(0, index).concat(elements).concat(array.slice(index));
|
|
42
35
|
}
|
|
43
|
-
|
|
44
36
|
function removeFromArray(array, index) {
|
|
45
37
|
assertArrayBounds(array, index);
|
|
46
38
|
return [...array.slice(0, index), ...array.slice(index + 1)];
|
|
47
39
|
}
|
|
48
|
-
|
|
49
40
|
function replaceInArray(array, index, elements) {
|
|
50
41
|
assertArrayBounds(array, index);
|
|
51
42
|
return array.slice(0, index).concat(elements).concat(array.slice(index + 1));
|