@babel/traverse 7.18.6 → 7.18.8
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.
@@ -17,6 +17,7 @@ var _t = require("@babel/types");
|
|
17
17
|
const {
|
18
18
|
anyTypeAnnotation,
|
19
19
|
isAnyTypeAnnotation,
|
20
|
+
isArrayTypeAnnotation,
|
20
21
|
isBooleanTypeAnnotation,
|
21
22
|
isEmptyTypeAnnotation,
|
22
23
|
isFlowBaseAnnotation,
|
@@ -25,6 +26,10 @@ const {
|
|
25
26
|
isMixedTypeAnnotation,
|
26
27
|
isNumberTypeAnnotation,
|
27
28
|
isStringTypeAnnotation,
|
29
|
+
isTSArrayType,
|
30
|
+
isTSTypeAnnotation,
|
31
|
+
isTSTypeReference,
|
32
|
+
isTupleTypeAnnotation,
|
28
33
|
isTypeAnnotation,
|
29
34
|
isUnionTypeAnnotation,
|
30
35
|
isVoidTypeAnnotation,
|
@@ -40,7 +45,11 @@ function getTypeAnnotation() {
|
|
40
45
|
}
|
41
46
|
|
42
47
|
type = this._getTypeAnnotation() || anyTypeAnnotation();
|
43
|
-
|
48
|
+
|
49
|
+
if (isTypeAnnotation(type) || isTSTypeAnnotation(type)) {
|
50
|
+
type = type.typeAnnotation;
|
51
|
+
}
|
52
|
+
|
44
53
|
this.setData("typeAnnotation", type);
|
45
54
|
return type;
|
46
55
|
}
|
@@ -156,7 +165,16 @@ function baseTypeStrictlyMatches(rightArg) {
|
|
156
165
|
|
157
166
|
function isGenericType(genericName) {
|
158
167
|
const type = this.getTypeAnnotation();
|
168
|
+
|
169
|
+
if (genericName === "Array") {
|
170
|
+
if (isTSArrayType(type) || isArrayTypeAnnotation(type) || isTupleTypeAnnotation(type)) {
|
171
|
+
return true;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
159
175
|
return isGenericTypeAnnotation(type) && isIdentifier(type.id, {
|
160
176
|
name: genericName
|
177
|
+
}) || isTSTypeReference(type) && isIdentifier(type.typeName, {
|
178
|
+
name: genericName
|
161
179
|
});
|
162
180
|
}
|
@@ -7,13 +7,11 @@ exports.default = _default;
|
|
7
7
|
|
8
8
|
var _t = require("@babel/types");
|
9
9
|
|
10
|
+
var _util = require("./util");
|
11
|
+
|
10
12
|
const {
|
11
13
|
BOOLEAN_NUMBER_BINARY_OPERATORS,
|
12
|
-
createFlowUnionType,
|
13
|
-
createTSUnionType,
|
14
14
|
createTypeAnnotationBasedOnTypeof,
|
15
|
-
createUnionTypeAnnotation,
|
16
|
-
isTSTypeAnnotation,
|
17
15
|
numberTypeAnnotation,
|
18
16
|
voidTypeAnnotation
|
19
17
|
} = _t;
|
@@ -61,15 +59,7 @@ function getTypeAnnotationBindingConstantViolations(binding, path, name) {
|
|
61
59
|
return;
|
62
60
|
}
|
63
61
|
|
64
|
-
|
65
|
-
return createTSUnionType(types);
|
66
|
-
}
|
67
|
-
|
68
|
-
if (createFlowUnionType) {
|
69
|
-
return createFlowUnionType(types);
|
70
|
-
}
|
71
|
-
|
72
|
-
return createUnionTypeAnnotation(types);
|
62
|
+
return (0, _util.createUnionType)(types);
|
73
63
|
}
|
74
64
|
|
75
65
|
function getConstantViolationsBefore(binding, path, functions) {
|
@@ -182,22 +172,8 @@ function getConditionalAnnotation(binding, path, name) {
|
|
182
172
|
}
|
183
173
|
|
184
174
|
if (types.length) {
|
185
|
-
if (isTSTypeAnnotation(types[0]) && createTSUnionType) {
|
186
|
-
return {
|
187
|
-
typeAnnotation: createTSUnionType(types),
|
188
|
-
ifStatement
|
189
|
-
};
|
190
|
-
}
|
191
|
-
|
192
|
-
if (createFlowUnionType) {
|
193
|
-
return {
|
194
|
-
typeAnnotation: createFlowUnionType(types),
|
195
|
-
ifStatement
|
196
|
-
};
|
197
|
-
}
|
198
|
-
|
199
175
|
return {
|
200
|
-
typeAnnotation:
|
176
|
+
typeAnnotation: (0, _util.createUnionType)(types),
|
201
177
|
ifStatement
|
202
178
|
};
|
203
179
|
}
|
@@ -26,6 +26,8 @@ exports.RegExpLiteral = RegExpLiteral;
|
|
26
26
|
exports.RestElement = RestElement;
|
27
27
|
exports.SequenceExpression = SequenceExpression;
|
28
28
|
exports.StringLiteral = StringLiteral;
|
29
|
+
exports.TSAsExpression = TSAsExpression;
|
30
|
+
exports.TSNonNullExpression = TSNonNullExpression;
|
29
31
|
exports.TaggedTemplateExpression = TaggedTemplateExpression;
|
30
32
|
exports.TemplateLiteral = TemplateLiteral;
|
31
33
|
exports.TypeCastExpression = TypeCastExpression;
|
@@ -37,6 +39,8 @@ var _t = require("@babel/types");
|
|
37
39
|
|
38
40
|
var _infererReference = require("./inferer-reference");
|
39
41
|
|
42
|
+
var _util = require("./util");
|
43
|
+
|
40
44
|
const {
|
41
45
|
BOOLEAN_BINARY_OPERATORS,
|
42
46
|
BOOLEAN_UNARY_OPERATORS,
|
@@ -47,37 +51,20 @@ const {
|
|
47
51
|
arrayTypeAnnotation,
|
48
52
|
booleanTypeAnnotation,
|
49
53
|
buildMatchMemberExpression,
|
50
|
-
createFlowUnionType,
|
51
|
-
createTSUnionType,
|
52
|
-
createUnionTypeAnnotation,
|
53
54
|
genericTypeAnnotation,
|
54
55
|
identifier,
|
55
|
-
isTSTypeAnnotation,
|
56
56
|
nullLiteralTypeAnnotation,
|
57
57
|
numberTypeAnnotation,
|
58
58
|
stringTypeAnnotation,
|
59
59
|
tupleTypeAnnotation,
|
60
60
|
unionTypeAnnotation,
|
61
|
-
voidTypeAnnotation
|
61
|
+
voidTypeAnnotation,
|
62
|
+
isIdentifier
|
62
63
|
} = _t;
|
63
64
|
|
64
65
|
function VariableDeclarator() {
|
65
|
-
|
66
|
-
|
67
|
-
const id = this.get("id");
|
68
|
-
if (!id.isIdentifier()) return;
|
69
|
-
const init = this.get("init");
|
70
|
-
let type = init.getTypeAnnotation();
|
71
|
-
|
72
|
-
if (((_type = type) == null ? void 0 : _type.type) === "AnyTypeAnnotation") {
|
73
|
-
if (init.isCallExpression() && init.get("callee").isIdentifier({
|
74
|
-
name: "Array"
|
75
|
-
}) && !init.scope.hasBinding("Array", true)) {
|
76
|
-
type = ArrayExpression();
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
return type;
|
66
|
+
if (!this.get("id").isIdentifier()) return;
|
67
|
+
return this.get("init").getTypeAnnotation();
|
81
68
|
}
|
82
69
|
|
83
70
|
function TypeCastExpression(node) {
|
@@ -86,6 +73,16 @@ function TypeCastExpression(node) {
|
|
86
73
|
|
87
74
|
TypeCastExpression.validParent = true;
|
88
75
|
|
76
|
+
function TSAsExpression(node) {
|
77
|
+
return node.typeAnnotation;
|
78
|
+
}
|
79
|
+
|
80
|
+
TSAsExpression.validParent = true;
|
81
|
+
|
82
|
+
function TSNonNullExpression() {
|
83
|
+
return this.get("expression").getTypeAnnotation();
|
84
|
+
}
|
85
|
+
|
89
86
|
function NewExpression(node) {
|
90
87
|
if (node.callee.type === "Identifier") {
|
91
88
|
return genericTypeAnnotation(node.callee);
|
@@ -133,30 +130,12 @@ function BinaryExpression(node) {
|
|
133
130
|
|
134
131
|
function LogicalExpression() {
|
135
132
|
const argumentTypes = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
|
136
|
-
|
137
|
-
if (isTSTypeAnnotation(argumentTypes[0]) && createTSUnionType) {
|
138
|
-
return createTSUnionType(argumentTypes);
|
139
|
-
}
|
140
|
-
|
141
|
-
if (createFlowUnionType) {
|
142
|
-
return createFlowUnionType(argumentTypes);
|
143
|
-
}
|
144
|
-
|
145
|
-
return createUnionTypeAnnotation(argumentTypes);
|
133
|
+
return (0, _util.createUnionType)(argumentTypes);
|
146
134
|
}
|
147
135
|
|
148
136
|
function ConditionalExpression() {
|
149
137
|
const argumentTypes = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
|
150
|
-
|
151
|
-
if (isTSTypeAnnotation(argumentTypes[0]) && createTSUnionType) {
|
152
|
-
return createTSUnionType(argumentTypes);
|
153
|
-
}
|
154
|
-
|
155
|
-
if (createFlowUnionType) {
|
156
|
-
return createFlowUnionType(argumentTypes);
|
157
|
-
}
|
158
|
-
|
159
|
-
return createUnionTypeAnnotation(argumentTypes);
|
138
|
+
return (0, _util.createUnionType)(argumentTypes);
|
160
139
|
}
|
161
140
|
|
162
141
|
function SequenceExpression() {
|
@@ -229,7 +208,9 @@ function CallExpression() {
|
|
229
208
|
|
230
209
|
if (isObjectKeys(callee)) {
|
231
210
|
return arrayTypeAnnotation(stringTypeAnnotation());
|
232
|
-
} else if (isArrayFrom(callee) || isObjectValues(callee)
|
211
|
+
} else if (isArrayFrom(callee) || isObjectValues(callee) || isIdentifier(callee, {
|
212
|
+
name: "Array"
|
213
|
+
})) {
|
233
214
|
return arrayTypeAnnotation(anyTypeAnnotation());
|
234
215
|
} else if (isObjectEntries(callee)) {
|
235
216
|
return arrayTypeAnnotation(tupleTypeAnnotation([stringTypeAnnotation(), anyTypeAnnotation()]));
|
@@ -246,14 +227,20 @@ function resolveCall(callee) {
|
|
246
227
|
callee = callee.resolve();
|
247
228
|
|
248
229
|
if (callee.isFunction()) {
|
249
|
-
|
250
|
-
|
230
|
+
const {
|
231
|
+
node
|
232
|
+
} = callee;
|
233
|
+
|
234
|
+
if (node.async) {
|
235
|
+
if (node.generator) {
|
251
236
|
return genericTypeAnnotation(identifier("AsyncIterator"));
|
252
237
|
} else {
|
253
238
|
return genericTypeAnnotation(identifier("Promise"));
|
254
239
|
}
|
255
240
|
} else {
|
256
|
-
if (
|
241
|
+
if (node.generator) {
|
242
|
+
return genericTypeAnnotation(identifier("Iterator"));
|
243
|
+
} else if (callee.node.returnType) {
|
257
244
|
return callee.node.returnType;
|
258
245
|
} else {}
|
259
246
|
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createUnionType = createUnionType;
|
7
|
+
|
8
|
+
var _t = require("@babel/types");
|
9
|
+
|
10
|
+
const {
|
11
|
+
createFlowUnionType,
|
12
|
+
createTSUnionType,
|
13
|
+
createUnionTypeAnnotation,
|
14
|
+
isFlowType,
|
15
|
+
isTSType
|
16
|
+
} = _t;
|
17
|
+
|
18
|
+
function createUnionType(types) {
|
19
|
+
{
|
20
|
+
if (isFlowType(types[0])) {
|
21
|
+
if (createFlowUnionType) {
|
22
|
+
return createFlowUnionType(types);
|
23
|
+
}
|
24
|
+
|
25
|
+
return createUnionTypeAnnotation(types);
|
26
|
+
} else {
|
27
|
+
if (createTSUnionType) {
|
28
|
+
return createTSUnionType(types);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@babel/traverse",
|
3
|
-
"version": "7.18.
|
3
|
+
"version": "7.18.8",
|
4
4
|
"description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes",
|
5
5
|
"author": "The Babel Team (https://babel.dev/team)",
|
6
6
|
"homepage": "https://babel.dev/docs/en/next/babel-traverse",
|
@@ -17,13 +17,13 @@
|
|
17
17
|
"main": "./lib/index.js",
|
18
18
|
"dependencies": {
|
19
19
|
"@babel/code-frame": "^7.18.6",
|
20
|
-
"@babel/generator": "^7.18.
|
20
|
+
"@babel/generator": "^7.18.7",
|
21
21
|
"@babel/helper-environment-visitor": "^7.18.6",
|
22
22
|
"@babel/helper-function-name": "^7.18.6",
|
23
23
|
"@babel/helper-hoist-variables": "^7.18.6",
|
24
24
|
"@babel/helper-split-export-declaration": "^7.18.6",
|
25
|
-
"@babel/parser": "^7.18.
|
26
|
-
"@babel/types": "^7.18.
|
25
|
+
"@babel/parser": "^7.18.8",
|
26
|
+
"@babel/types": "^7.18.8",
|
27
27
|
"debug": "^4.1.0",
|
28
28
|
"globals": "^11.1.0"
|
29
29
|
},
|