@babel/traverse 7.0.0-beta.40 → 7.0.0-beta.44
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.
Potentially problematic release.
This version of @babel/traverse might be problematic. Click here for more details.
- package/lib/cache.js +3 -1
- package/lib/context.js +27 -18
- package/lib/hub.js +3 -1
- package/lib/index.js +48 -18
- package/lib/path/ancestry.js +13 -3
- package/lib/path/comments.js +14 -4
- package/lib/path/context.js +9 -9
- package/lib/path/conversion.js +56 -38
- package/lib/path/evaluation.js +18 -18
- package/lib/path/family.js +15 -5
- package/lib/path/index.js +51 -19
- package/lib/path/inference/index.js +29 -19
- package/lib/path/inference/inferer-reference.js +19 -9
- package/lib/path/inference/inferers.js +54 -41
- package/lib/path/introspection.js +34 -16
- package/lib/path/lib/hoister.js +21 -7
- package/lib/path/lib/removal-hooks.js +3 -1
- package/lib/path/lib/virtual-types.js +31 -21
- package/lib/path/modification.js +18 -9
- package/lib/path/removal.js +3 -1
- package/lib/path/replacement.js +53 -28
- package/lib/scope/binding.js +3 -1
- package/lib/scope/index.js +120 -85
- package/lib/scope/lib/renamer.js +34 -30
- package/lib/visitors.js +53 -33
- package/package.json +9 -8
package/lib/path/evaluation.js
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
exports
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
4
6
|
exports.evaluateTruthy = evaluateTruthy;
|
5
7
|
exports.evaluate = evaluate;
|
6
8
|
var VALID_CALLEES = ["String", "Number", "Math"];
|
@@ -192,14 +194,13 @@ function _evaluate(path, state) {
|
|
192
194
|
_ref = _i.value;
|
193
195
|
}
|
194
196
|
|
195
|
-
var
|
196
|
-
|
197
|
-
var elemValue = _elem.evaluate();
|
197
|
+
var elem = _ref;
|
198
|
+
var elemValue = elem.evaluate();
|
198
199
|
|
199
200
|
if (elemValue.confident) {
|
200
201
|
arr.push(elemValue.value);
|
201
202
|
} else {
|
202
|
-
return deopt(
|
203
|
+
return deopt(elem, state);
|
203
204
|
}
|
204
205
|
}
|
205
206
|
|
@@ -222,17 +223,16 @@ function _evaluate(path, state) {
|
|
222
223
|
_ref2 = _i2.value;
|
223
224
|
}
|
224
225
|
|
225
|
-
var
|
226
|
+
var prop = _ref2;
|
226
227
|
|
227
|
-
if (
|
228
|
-
return deopt(
|
228
|
+
if (prop.isObjectMethod() || prop.isSpreadElement()) {
|
229
|
+
return deopt(prop, state);
|
229
230
|
}
|
230
231
|
|
231
|
-
var keyPath =
|
232
|
-
|
232
|
+
var keyPath = prop.get("key");
|
233
233
|
var key = keyPath;
|
234
234
|
|
235
|
-
if (
|
235
|
+
if (prop.node.computed) {
|
236
236
|
key = key.evaluate();
|
237
237
|
|
238
238
|
if (!key.confident) {
|
@@ -246,16 +246,16 @@ function _evaluate(path, state) {
|
|
246
246
|
key = key.node.value;
|
247
247
|
}
|
248
248
|
|
249
|
-
var valuePath =
|
249
|
+
var valuePath = prop.get("value");
|
250
250
|
|
251
|
-
var
|
251
|
+
var _value = valuePath.evaluate();
|
252
252
|
|
253
|
-
if (!
|
253
|
+
if (!_value.confident) {
|
254
254
|
return deopt(valuePath, state);
|
255
255
|
}
|
256
256
|
|
257
|
-
|
258
|
-
obj[key] =
|
257
|
+
_value = _value.value;
|
258
|
+
obj[key] = _value;
|
259
259
|
}
|
260
260
|
|
261
261
|
return obj;
|
@@ -424,9 +424,9 @@ function evaluateQuasis(path, quasis, state, raw) {
|
|
424
424
|
_ref3 = _i3.value;
|
425
425
|
}
|
426
426
|
|
427
|
-
var
|
427
|
+
var elem = _ref3;
|
428
428
|
if (!state.confident) break;
|
429
|
-
str += raw ?
|
429
|
+
str += raw ? elem.value.raw : elem.value.cooked;
|
430
430
|
var expr = exprs[i++];
|
431
431
|
if (expr) str += String(evaluateCached(expr, state));
|
432
432
|
}
|
package/lib/path/family.js
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
exports
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
4
6
|
exports.getOpposite = getOpposite;
|
5
7
|
exports.getCompletionRecords = getCompletionRecords;
|
6
8
|
exports.getSibling = getSibling;
|
@@ -18,7 +20,15 @@ exports.getOuterBindingIdentifierPaths = getOuterBindingIdentifierPaths;
|
|
18
20
|
|
19
21
|
var _index = _interopRequireDefault(require("./index"));
|
20
22
|
|
21
|
-
|
23
|
+
function t() {
|
24
|
+
var data = _interopRequireWildcard(require("@babel/types"));
|
25
|
+
|
26
|
+
t = function t() {
|
27
|
+
return data;
|
28
|
+
};
|
29
|
+
|
30
|
+
return data;
|
31
|
+
}
|
22
32
|
|
23
33
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
24
34
|
|
@@ -165,11 +175,11 @@ function _getPattern(parts, context) {
|
|
165
175
|
}
|
166
176
|
|
167
177
|
function getBindingIdentifiers(duplicates) {
|
168
|
-
return t.getBindingIdentifiers(this.node, duplicates);
|
178
|
+
return t().getBindingIdentifiers(this.node, duplicates);
|
169
179
|
}
|
170
180
|
|
171
181
|
function getOuterBindingIdentifiers(duplicates) {
|
172
|
-
return t.getOuterBindingIdentifiers(this.node, duplicates);
|
182
|
+
return t().getOuterBindingIdentifiers(this.node, duplicates);
|
173
183
|
}
|
174
184
|
|
175
185
|
function getBindingIdentifierPaths(duplicates, outerOnly) {
|
@@ -189,7 +199,7 @@ function getBindingIdentifierPaths(duplicates, outerOnly) {
|
|
189
199
|
var id = search.shift();
|
190
200
|
if (!id) continue;
|
191
201
|
if (!id.node) continue;
|
192
|
-
var keys = t.getBindingIdentifiers.keys[id.node.type];
|
202
|
+
var keys = t().getBindingIdentifiers.keys[id.node.type];
|
193
203
|
|
194
204
|
if (id.isIdentifier()) {
|
195
205
|
if (duplicates) {
|
package/lib/path/index.js
CHANGED
@@ -1,23 +1,57 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
exports
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
4
6
|
exports.default = void 0;
|
5
7
|
|
6
8
|
var virtualTypes = _interopRequireWildcard(require("./lib/virtual-types"));
|
7
9
|
|
8
|
-
|
10
|
+
function _debug2() {
|
11
|
+
var data = _interopRequireDefault(require("debug"));
|
9
12
|
|
10
|
-
|
13
|
+
_debug2 = function _debug2() {
|
14
|
+
return data;
|
15
|
+
};
|
16
|
+
|
17
|
+
return data;
|
18
|
+
}
|
19
|
+
|
20
|
+
function _invariant() {
|
21
|
+
var data = _interopRequireDefault(require("invariant"));
|
22
|
+
|
23
|
+
_invariant = function _invariant() {
|
24
|
+
return data;
|
25
|
+
};
|
26
|
+
|
27
|
+
return data;
|
28
|
+
}
|
11
29
|
|
12
30
|
var _index = _interopRequireDefault(require("../index"));
|
13
31
|
|
14
32
|
var _scope = _interopRequireDefault(require("../scope"));
|
15
33
|
|
16
|
-
|
34
|
+
function t() {
|
35
|
+
var data = _interopRequireWildcard(require("@babel/types"));
|
36
|
+
|
37
|
+
t = function t() {
|
38
|
+
return data;
|
39
|
+
};
|
40
|
+
|
41
|
+
return data;
|
42
|
+
}
|
17
43
|
|
18
44
|
var _cache = require("../cache");
|
19
45
|
|
20
|
-
|
46
|
+
function _generator() {
|
47
|
+
var data = _interopRequireDefault(require("@babel/generator"));
|
48
|
+
|
49
|
+
_generator = function _generator() {
|
50
|
+
return data;
|
51
|
+
};
|
52
|
+
|
53
|
+
return data;
|
54
|
+
}
|
21
55
|
|
22
56
|
var NodePath_ancestry = _interopRequireWildcard(require("./ancestry"));
|
23
57
|
|
@@ -45,7 +79,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
45
79
|
|
46
80
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
47
81
|
|
48
|
-
var _debug = (0, _debug2.default)("babel");
|
82
|
+
var _debug = (0, _debug2().default)("babel");
|
49
83
|
|
50
84
|
var NodePath = function () {
|
51
85
|
function NodePath(hub, parent) {
|
@@ -84,7 +118,7 @@ var NodePath = function () {
|
|
84
118
|
hub = parentPath.hub;
|
85
119
|
}
|
86
120
|
|
87
|
-
(0, _invariant.default)(parent, "To get a node path the parent needs to exist");
|
121
|
+
(0, _invariant().default)(parent, "To get a node path the parent needs to exist");
|
88
122
|
var targetNode = container[key];
|
89
123
|
var paths = _cache.path.get(parent) || [];
|
90
124
|
|
@@ -141,7 +175,7 @@ var NodePath = function () {
|
|
141
175
|
};
|
142
176
|
|
143
177
|
_proto.set = function set(key, node) {
|
144
|
-
t.validate(this.node, key, node);
|
178
|
+
t().validate(this.node, key, node);
|
145
179
|
this.node[key] = node;
|
146
180
|
};
|
147
181
|
|
@@ -165,7 +199,7 @@ var NodePath = function () {
|
|
165
199
|
};
|
166
200
|
|
167
201
|
_proto.toString = function toString() {
|
168
|
-
return (0, _generator.default)(this.node).code;
|
202
|
+
return (0, _generator().default)(this.node).code;
|
169
203
|
};
|
170
204
|
|
171
205
|
return NodePath;
|
@@ -173,12 +207,14 @@ var NodePath = function () {
|
|
173
207
|
|
174
208
|
exports.default = NodePath;
|
175
209
|
Object.assign(NodePath.prototype, NodePath_ancestry, NodePath_inference, NodePath_replacement, NodePath_evaluation, NodePath_conversion, NodePath_introspection, NodePath_context, NodePath_removal, NodePath_modification, NodePath_family, NodePath_comments);
|
210
|
+
var _arr = t().TYPES;
|
176
211
|
|
177
|
-
var
|
212
|
+
var _loop2 = function _loop2() {
|
213
|
+
var type = _arr[_i];
|
178
214
|
var typeKey = "is" + type;
|
179
215
|
|
180
216
|
NodePath.prototype[typeKey] = function (opts) {
|
181
|
-
return t[typeKey](this.node, opts);
|
217
|
+
return t()[typeKey](this.node, opts);
|
182
218
|
};
|
183
219
|
|
184
220
|
NodePath.prototype["assert" + type] = function (opts) {
|
@@ -188,17 +224,13 @@ var _loop = function _loop(type) {
|
|
188
224
|
};
|
189
225
|
};
|
190
226
|
|
191
|
-
var _arr = t.TYPES;
|
192
|
-
|
193
227
|
for (var _i = 0; _i < _arr.length; _i++) {
|
194
|
-
|
195
|
-
|
196
|
-
_loop(type);
|
228
|
+
_loop2();
|
197
229
|
}
|
198
230
|
|
199
|
-
var
|
231
|
+
var _loop = function _loop(type) {
|
200
232
|
if (type[0] === "_") return "continue";
|
201
|
-
if (t.TYPES.indexOf(type) < 0) t.TYPES.push(type);
|
233
|
+
if (t().TYPES.indexOf(type) < 0) t().TYPES.push(type);
|
202
234
|
var virtualType = virtualTypes[type];
|
203
235
|
|
204
236
|
NodePath.prototype["is" + type] = function (opts) {
|
@@ -207,7 +239,7 @@ var _loop2 = function _loop2(type) {
|
|
207
239
|
};
|
208
240
|
|
209
241
|
for (var type in virtualTypes) {
|
210
|
-
var _ret =
|
242
|
+
var _ret = _loop(type);
|
211
243
|
|
212
244
|
if (_ret === "continue") continue;
|
213
245
|
}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
exports
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
4
6
|
exports.getTypeAnnotation = getTypeAnnotation;
|
5
7
|
exports._getTypeAnnotation = _getTypeAnnotation;
|
6
8
|
exports.isBaseType = isBaseType;
|
@@ -10,14 +12,22 @@ exports.isGenericType = isGenericType;
|
|
10
12
|
|
11
13
|
var inferers = _interopRequireWildcard(require("./inferers"));
|
12
14
|
|
13
|
-
|
15
|
+
function t() {
|
16
|
+
var data = _interopRequireWildcard(require("@babel/types"));
|
17
|
+
|
18
|
+
t = function t() {
|
19
|
+
return data;
|
20
|
+
};
|
21
|
+
|
22
|
+
return data;
|
23
|
+
}
|
14
24
|
|
15
25
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
16
26
|
|
17
27
|
function getTypeAnnotation() {
|
18
28
|
if (this.typeAnnotation) return this.typeAnnotation;
|
19
|
-
var type = this._getTypeAnnotation() || t.anyTypeAnnotation();
|
20
|
-
if (t.isTypeAnnotation(type)) type = type.typeAnnotation;
|
29
|
+
var type = this._getTypeAnnotation() || t().anyTypeAnnotation();
|
30
|
+
if (t().isTypeAnnotation(type)) type = type.typeAnnotation;
|
21
31
|
return this.typeAnnotation = type;
|
22
32
|
}
|
23
33
|
|
@@ -30,14 +40,14 @@ function _getTypeAnnotation() {
|
|
30
40
|
var declarParent = declar.parentPath;
|
31
41
|
|
32
42
|
if (declar.key === "left" && declarParent.isForInStatement()) {
|
33
|
-
return t.stringTypeAnnotation();
|
43
|
+
return t().stringTypeAnnotation();
|
34
44
|
}
|
35
45
|
|
36
46
|
if (declar.key === "left" && declarParent.isForOfStatement()) {
|
37
|
-
return t.anyTypeAnnotation();
|
47
|
+
return t().anyTypeAnnotation();
|
38
48
|
}
|
39
49
|
|
40
|
-
return t.voidTypeAnnotation();
|
50
|
+
return t().voidTypeAnnotation();
|
41
51
|
} else {
|
42
52
|
return;
|
43
53
|
}
|
@@ -66,19 +76,19 @@ function isBaseType(baseName, soft) {
|
|
66
76
|
|
67
77
|
function _isBaseType(baseName, type, soft) {
|
68
78
|
if (baseName === "string") {
|
69
|
-
return t.isStringTypeAnnotation(type);
|
79
|
+
return t().isStringTypeAnnotation(type);
|
70
80
|
} else if (baseName === "number") {
|
71
|
-
return t.isNumberTypeAnnotation(type);
|
81
|
+
return t().isNumberTypeAnnotation(type);
|
72
82
|
} else if (baseName === "boolean") {
|
73
|
-
return t.isBooleanTypeAnnotation(type);
|
83
|
+
return t().isBooleanTypeAnnotation(type);
|
74
84
|
} else if (baseName === "any") {
|
75
|
-
return t.isAnyTypeAnnotation(type);
|
85
|
+
return t().isAnyTypeAnnotation(type);
|
76
86
|
} else if (baseName === "mixed") {
|
77
|
-
return t.isMixedTypeAnnotation(type);
|
87
|
+
return t().isMixedTypeAnnotation(type);
|
78
88
|
} else if (baseName === "empty") {
|
79
|
-
return t.isEmptyTypeAnnotation(type);
|
89
|
+
return t().isEmptyTypeAnnotation(type);
|
80
90
|
} else if (baseName === "void") {
|
81
|
-
return t.isVoidTypeAnnotation(type);
|
91
|
+
return t().isVoidTypeAnnotation(type);
|
82
92
|
} else {
|
83
93
|
if (soft) {
|
84
94
|
return false;
|
@@ -90,15 +100,15 @@ function _isBaseType(baseName, type, soft) {
|
|
90
100
|
|
91
101
|
function couldBeBaseType(name) {
|
92
102
|
var type = this.getTypeAnnotation();
|
93
|
-
if (t.isAnyTypeAnnotation(type)) return true;
|
103
|
+
if (t().isAnyTypeAnnotation(type)) return true;
|
94
104
|
|
95
|
-
if (t.isUnionTypeAnnotation(type)) {
|
105
|
+
if (t().isUnionTypeAnnotation(type)) {
|
96
106
|
var _arr = type.types;
|
97
107
|
|
98
108
|
for (var _i = 0; _i < _arr.length; _i++) {
|
99
109
|
var type2 = _arr[_i];
|
100
110
|
|
101
|
-
if (t.isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) {
|
111
|
+
if (t().isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) {
|
102
112
|
return true;
|
103
113
|
}
|
104
114
|
}
|
@@ -113,14 +123,14 @@ function baseTypeStrictlyMatches(right) {
|
|
113
123
|
var left = this.getTypeAnnotation();
|
114
124
|
right = right.getTypeAnnotation();
|
115
125
|
|
116
|
-
if (!t.isAnyTypeAnnotation(left) && t.isFlowBaseAnnotation(left)) {
|
126
|
+
if (!t().isAnyTypeAnnotation(left) && t().isFlowBaseAnnotation(left)) {
|
117
127
|
return right.type === left.type;
|
118
128
|
}
|
119
129
|
}
|
120
130
|
|
121
131
|
function isGenericType(genericName) {
|
122
132
|
var type = this.getTypeAnnotation();
|
123
|
-
return t.isGenericTypeAnnotation(type) && t.isIdentifier(type.id, {
|
133
|
+
return t().isGenericTypeAnnotation(type) && t().isIdentifier(type.id, {
|
124
134
|
name: genericName
|
125
135
|
});
|
126
136
|
}
|
@@ -1,9 +1,19 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
exports
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
4
6
|
exports.default = _default;
|
5
7
|
|
6
|
-
|
8
|
+
function t() {
|
9
|
+
var data = _interopRequireWildcard(require("@babel/types"));
|
10
|
+
|
11
|
+
t = function t() {
|
12
|
+
return data;
|
13
|
+
};
|
14
|
+
|
15
|
+
return data;
|
16
|
+
}
|
7
17
|
|
8
18
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
9
19
|
|
@@ -20,9 +30,9 @@ function _default(node) {
|
|
20
30
|
}
|
21
31
|
|
22
32
|
if (node.name === "undefined") {
|
23
|
-
return t.voidTypeAnnotation();
|
33
|
+
return t().voidTypeAnnotation();
|
24
34
|
} else if (node.name === "NaN" || node.name === "Infinity") {
|
25
|
-
return t.numberTypeAnnotation();
|
35
|
+
return t().numberTypeAnnotation();
|
26
36
|
} else if (node.name === "arguments") {}
|
27
37
|
}
|
28
38
|
|
@@ -51,7 +61,7 @@ function getTypeAnnotationBindingConstantViolations(binding, path, name) {
|
|
51
61
|
}
|
52
62
|
|
53
63
|
if (types.length) {
|
54
|
-
return t.createUnionTypeAnnotation(types);
|
64
|
+
return t().createUnionTypeAnnotation(types);
|
55
65
|
}
|
56
66
|
}
|
57
67
|
|
@@ -89,8 +99,8 @@ function inferAnnotationFromBinaryExpression(name, path) {
|
|
89
99
|
return target.getTypeAnnotation();
|
90
100
|
}
|
91
101
|
|
92
|
-
if (t.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {
|
93
|
-
return t.numberTypeAnnotation();
|
102
|
+
if (t().BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {
|
103
|
+
return t().numberTypeAnnotation();
|
94
104
|
}
|
95
105
|
|
96
106
|
return;
|
@@ -120,7 +130,7 @@ function inferAnnotationFromBinaryExpression(name, path) {
|
|
120
130
|
if (!typePath.isLiteral()) return;
|
121
131
|
var typeValue = typePath.node.value;
|
122
132
|
if (typeof typeValue !== "string") return;
|
123
|
-
return t.createTypeAnnotationBasedOnTypeof(typeValue);
|
133
|
+
return t().createTypeAnnotationBasedOnTypeof(typeValue);
|
124
134
|
}
|
125
135
|
|
126
136
|
function getParentConditionalPath(binding, path, name) {
|
@@ -166,7 +176,7 @@ function getConditionalAnnotation(binding, path, name) {
|
|
166
176
|
|
167
177
|
if (types.length) {
|
168
178
|
return {
|
169
|
-
typeAnnotation: t.createUnionTypeAnnotation(types),
|
179
|
+
typeAnnotation: t().createUnionTypeAnnotation(types),
|
170
180
|
ifStatement: ifStatement
|
171
181
|
};
|
172
182
|
}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
exports
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
4
6
|
exports.VariableDeclarator = VariableDeclarator;
|
5
7
|
exports.TypeCastExpression = TypeCastExpression;
|
6
8
|
exports.NewExpression = NewExpression;
|
@@ -23,13 +25,24 @@ exports.RestElement = RestElement;
|
|
23
25
|
exports.ClassDeclaration = exports.ClassExpression = exports.FunctionDeclaration = exports.ArrowFunctionExpression = exports.FunctionExpression = Func;
|
24
26
|
exports.CallExpression = CallExpression;
|
25
27
|
exports.TaggedTemplateExpression = TaggedTemplateExpression;
|
26
|
-
exports
|
28
|
+
Object.defineProperty(exports, "Identifier", {
|
29
|
+
enumerable: true,
|
30
|
+
get: function get() {
|
31
|
+
return _infererReference.default;
|
32
|
+
}
|
33
|
+
});
|
27
34
|
|
28
|
-
|
35
|
+
function t() {
|
36
|
+
var data = _interopRequireWildcard(require("@babel/types"));
|
29
37
|
|
30
|
-
|
38
|
+
t = function t() {
|
39
|
+
return data;
|
40
|
+
};
|
31
41
|
|
32
|
-
|
42
|
+
return data;
|
43
|
+
}
|
44
|
+
|
45
|
+
var _infererReference = _interopRequireDefault(require("./inferer-reference"));
|
33
46
|
|
34
47
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
35
48
|
|
@@ -60,55 +73,55 @@ TypeCastExpression.validParent = true;
|
|
60
73
|
|
61
74
|
function NewExpression(node) {
|
62
75
|
if (this.get("callee").isIdentifier()) {
|
63
|
-
return t.genericTypeAnnotation(node.callee);
|
76
|
+
return t().genericTypeAnnotation(node.callee);
|
64
77
|
}
|
65
78
|
}
|
66
79
|
|
67
80
|
function TemplateLiteral() {
|
68
|
-
return t.stringTypeAnnotation();
|
81
|
+
return t().stringTypeAnnotation();
|
69
82
|
}
|
70
83
|
|
71
84
|
function UnaryExpression(node) {
|
72
85
|
var operator = node.operator;
|
73
86
|
|
74
87
|
if (operator === "void") {
|
75
|
-
return t.voidTypeAnnotation();
|
76
|
-
} else if (t.NUMBER_UNARY_OPERATORS.indexOf(operator) >= 0) {
|
77
|
-
return t.numberTypeAnnotation();
|
78
|
-
} else if (t.STRING_UNARY_OPERATORS.indexOf(operator) >= 0) {
|
79
|
-
return t.stringTypeAnnotation();
|
80
|
-
} else if (t.BOOLEAN_UNARY_OPERATORS.indexOf(operator) >= 0) {
|
81
|
-
return t.booleanTypeAnnotation();
|
88
|
+
return t().voidTypeAnnotation();
|
89
|
+
} else if (t().NUMBER_UNARY_OPERATORS.indexOf(operator) >= 0) {
|
90
|
+
return t().numberTypeAnnotation();
|
91
|
+
} else if (t().STRING_UNARY_OPERATORS.indexOf(operator) >= 0) {
|
92
|
+
return t().stringTypeAnnotation();
|
93
|
+
} else if (t().BOOLEAN_UNARY_OPERATORS.indexOf(operator) >= 0) {
|
94
|
+
return t().booleanTypeAnnotation();
|
82
95
|
}
|
83
96
|
}
|
84
97
|
|
85
98
|
function BinaryExpression(node) {
|
86
99
|
var operator = node.operator;
|
87
100
|
|
88
|
-
if (t.NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {
|
89
|
-
return t.numberTypeAnnotation();
|
90
|
-
} else if (t.BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) {
|
91
|
-
return t.booleanTypeAnnotation();
|
101
|
+
if (t().NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {
|
102
|
+
return t().numberTypeAnnotation();
|
103
|
+
} else if (t().BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) {
|
104
|
+
return t().booleanTypeAnnotation();
|
92
105
|
} else if (operator === "+") {
|
93
106
|
var right = this.get("right");
|
94
107
|
var left = this.get("left");
|
95
108
|
|
96
109
|
if (left.isBaseType("number") && right.isBaseType("number")) {
|
97
|
-
return t.numberTypeAnnotation();
|
110
|
+
return t().numberTypeAnnotation();
|
98
111
|
} else if (left.isBaseType("string") || right.isBaseType("string")) {
|
99
|
-
return t.stringTypeAnnotation();
|
112
|
+
return t().stringTypeAnnotation();
|
100
113
|
}
|
101
114
|
|
102
|
-
return t.unionTypeAnnotation([t.stringTypeAnnotation(), t.numberTypeAnnotation()]);
|
115
|
+
return t().unionTypeAnnotation([t().stringTypeAnnotation(), t().numberTypeAnnotation()]);
|
103
116
|
}
|
104
117
|
}
|
105
118
|
|
106
119
|
function LogicalExpression() {
|
107
|
-
return t.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()]);
|
120
|
+
return t().createUnionTypeAnnotation([this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()]);
|
108
121
|
}
|
109
122
|
|
110
123
|
function ConditionalExpression() {
|
111
|
-
return t.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()]);
|
124
|
+
return t().createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()]);
|
112
125
|
}
|
113
126
|
|
114
127
|
function SequenceExpression() {
|
@@ -123,36 +136,36 @@ function UpdateExpression(node) {
|
|
123
136
|
var operator = node.operator;
|
124
137
|
|
125
138
|
if (operator === "++" || operator === "--") {
|
126
|
-
return t.numberTypeAnnotation();
|
139
|
+
return t().numberTypeAnnotation();
|
127
140
|
}
|
128
141
|
}
|
129
142
|
|
130
143
|
function StringLiteral() {
|
131
|
-
return t.stringTypeAnnotation();
|
144
|
+
return t().stringTypeAnnotation();
|
132
145
|
}
|
133
146
|
|
134
147
|
function NumericLiteral() {
|
135
|
-
return t.numberTypeAnnotation();
|
148
|
+
return t().numberTypeAnnotation();
|
136
149
|
}
|
137
150
|
|
138
151
|
function BooleanLiteral() {
|
139
|
-
return t.booleanTypeAnnotation();
|
152
|
+
return t().booleanTypeAnnotation();
|
140
153
|
}
|
141
154
|
|
142
155
|
function NullLiteral() {
|
143
|
-
return t.nullLiteralTypeAnnotation();
|
156
|
+
return t().nullLiteralTypeAnnotation();
|
144
157
|
}
|
145
158
|
|
146
159
|
function RegExpLiteral() {
|
147
|
-
return t.genericTypeAnnotation(t.identifier("RegExp"));
|
160
|
+
return t().genericTypeAnnotation(t().identifier("RegExp"));
|
148
161
|
}
|
149
162
|
|
150
163
|
function ObjectExpression() {
|
151
|
-
return t.genericTypeAnnotation(t.identifier("Object"));
|
164
|
+
return t().genericTypeAnnotation(t().identifier("Object"));
|
152
165
|
}
|
153
166
|
|
154
167
|
function ArrayExpression() {
|
155
|
-
return t.genericTypeAnnotation(t.identifier("Array"));
|
168
|
+
return t().genericTypeAnnotation(t().identifier("Array"));
|
156
169
|
}
|
157
170
|
|
158
171
|
function RestElement() {
|
@@ -162,23 +175,23 @@ function RestElement() {
|
|
162
175
|
RestElement.validParent = true;
|
163
176
|
|
164
177
|
function Func() {
|
165
|
-
return t.genericTypeAnnotation(t.identifier("Function"));
|
178
|
+
return t().genericTypeAnnotation(t().identifier("Function"));
|
166
179
|
}
|
167
180
|
|
168
|
-
var isArrayFrom = t.buildMatchMemberExpression("Array.from");
|
169
|
-
var isObjectKeys = t.buildMatchMemberExpression("Object.keys");
|
170
|
-
var isObjectValues = t.buildMatchMemberExpression("Object.values");
|
171
|
-
var isObjectEntries = t.buildMatchMemberExpression("Object.entries");
|
181
|
+
var isArrayFrom = t().buildMatchMemberExpression("Array.from");
|
182
|
+
var isObjectKeys = t().buildMatchMemberExpression("Object.keys");
|
183
|
+
var isObjectValues = t().buildMatchMemberExpression("Object.values");
|
184
|
+
var isObjectEntries = t().buildMatchMemberExpression("Object.entries");
|
172
185
|
|
173
186
|
function CallExpression() {
|
174
187
|
var callee = this.node.callee;
|
175
188
|
|
176
189
|
if (isObjectKeys(callee)) {
|
177
|
-
return t.arrayTypeAnnotation(t.stringTypeAnnotation());
|
190
|
+
return t().arrayTypeAnnotation(t().stringTypeAnnotation());
|
178
191
|
} else if (isArrayFrom(callee) || isObjectValues(callee)) {
|
179
|
-
return t.arrayTypeAnnotation(t.anyTypeAnnotation());
|
192
|
+
return t().arrayTypeAnnotation(t().anyTypeAnnotation());
|
180
193
|
} else if (isObjectEntries(callee)) {
|
181
|
-
return t.arrayTypeAnnotation(t.tupleTypeAnnotation([t.stringTypeAnnotation(), t.anyTypeAnnotation()]));
|
194
|
+
return t().arrayTypeAnnotation(t().tupleTypeAnnotation([t().stringTypeAnnotation(), t().anyTypeAnnotation()]));
|
182
195
|
}
|
183
196
|
|
184
197
|
return resolveCall(this.get("callee"));
|
@@ -194,9 +207,9 @@ function resolveCall(callee) {
|
|
194
207
|
if (callee.isFunction()) {
|
195
208
|
if (callee.is("async")) {
|
196
209
|
if (callee.is("generator")) {
|
197
|
-
return t.genericTypeAnnotation(t.identifier("AsyncIterator"));
|
210
|
+
return t().genericTypeAnnotation(t().identifier("AsyncIterator"));
|
198
211
|
} else {
|
199
|
-
return t.genericTypeAnnotation(t.identifier("Promise"));
|
212
|
+
return t().genericTypeAnnotation(t().identifier("Promise"));
|
200
213
|
}
|
201
214
|
} else {
|
202
215
|
if (callee.node.returnType) {
|