@typescript-eslint/eslint-plugin 8.70.1-alpha.12 → 8.70.1-alpha.14
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/rules/await-thenable.js +14 -3
- package/dist/rules/no-unnecessary-type-assertion.js +2 -5
- package/dist/rules/return-await.js +3 -13
- package/dist/util/getAwaitTokenRemovalRange.d.ts +4 -0
- package/dist/util/getAwaitTokenRemovalRange.js +15 -0
- package/dist/util/index.d.ts +3 -1
- package/dist/util/index.js +3 -1
- package/dist/util/isStartOfArrowFunctionBodyNeedingParentheses.d.ts +2 -0
- package/dist/util/{isStartOfArrowFunctionBody.js → isStartOfArrowFunctionBodyNeedingParentheses.js} +6 -2
- package/dist/util/isStartOfExpressionStatementNeedingParentheses.d.ts +2 -0
- package/dist/util/isStartOfExpressionStatementNeedingParentheses.js +9 -0
- package/package.json +8 -8
- package/dist/util/isStartOfArrowFunctionBody.d.ts +0 -2
|
@@ -77,7 +77,18 @@ exports.default = (0, util_1.createRule)({
|
|
|
77
77
|
messageId: 'removeAwait',
|
|
78
78
|
fix(fixer) {
|
|
79
79
|
const awaitKeyword = (0, util_1.nullThrows)(context.sourceCode.getFirstToken(node, util_1.isAwaitKeyword), util_1.NullThrowsReasons.MissingToken('await', 'await expression'));
|
|
80
|
-
|
|
80
|
+
const awaitTokenRemovalRange = (0, util_1.getAwaitTokenRemovalRange)(context.sourceCode, awaitKeyword);
|
|
81
|
+
const awaitRemovalFix = fixer.removeRange(awaitTokenRemovalRange);
|
|
82
|
+
const firstOperandToken = (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(awaitKeyword), util_1.NullThrowsReasons.MissingToken('operand', 'await expression'));
|
|
83
|
+
if ((0, util_1.isStartOfArrowFunctionBodyNeedingParentheses)(node, firstOperandToken, context.sourceCode) ||
|
|
84
|
+
(0, util_1.isStartOfExpressionStatementNeedingParentheses)(node, firstOperandToken)) {
|
|
85
|
+
return [
|
|
86
|
+
awaitRemovalFix,
|
|
87
|
+
fixer.insertTextBefore(awaitArgumentEsNode, '('),
|
|
88
|
+
fixer.insertTextAfter(awaitArgumentEsNode, ')'),
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
return awaitRemovalFix;
|
|
81
92
|
},
|
|
82
93
|
},
|
|
83
94
|
],
|
|
@@ -135,7 +146,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
135
146
|
messageId: 'convertToOrdinaryFor',
|
|
136
147
|
fix(fixer) {
|
|
137
148
|
const awaitToken = (0, util_1.nullThrows)(context.sourceCode.getFirstToken(node, util_1.isAwaitKeyword), util_1.NullThrowsReasons.MissingToken('await', 'for await loop'));
|
|
138
|
-
return fixer.
|
|
149
|
+
return fixer.removeRange((0, util_1.getAwaitTokenRemovalRange)(context.sourceCode, awaitToken));
|
|
139
150
|
},
|
|
140
151
|
},
|
|
141
152
|
],
|
|
@@ -168,7 +179,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
168
179
|
messageId: 'removeAwait',
|
|
169
180
|
fix(fixer) {
|
|
170
181
|
const awaitToken = (0, util_1.nullThrows)(context.sourceCode.getFirstToken(node, util_1.isAwaitKeyword), util_1.NullThrowsReasons.MissingToken('await', 'await using'));
|
|
171
|
-
return fixer.
|
|
182
|
+
return fixer.removeRange((0, util_1.getAwaitTokenRemovalRange)(context.sourceCode, awaitToken));
|
|
172
183
|
},
|
|
173
184
|
},
|
|
174
185
|
}),
|
|
@@ -587,11 +587,8 @@ exports.default = (0, util_1.createRule)({
|
|
|
587
587
|
// is parsed as a block body. In those positions the operand must be
|
|
588
588
|
// wrapped in parentheses to stay an expression.
|
|
589
589
|
const firstOperandToken = (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(closingAngleBracket), util_1.NullThrowsReasons.MissingToken('operand', 'type assertion'));
|
|
590
|
-
const
|
|
591
|
-
(0, util_1.
|
|
592
|
-
const breaksArrowFunctionBody = firstOperandToken.value === '{' &&
|
|
593
|
-
(0, util_1.isStartOfArrowFunctionBody)(node, context.sourceCode);
|
|
594
|
-
const needsParens = breaksExpressionStatement || breaksArrowFunctionBody;
|
|
590
|
+
const needsParens = (0, util_1.isStartOfExpressionStatementNeedingParentheses)(node, firstOperandToken) ||
|
|
591
|
+
(0, util_1.isStartOfArrowFunctionBodyNeedingParentheses)(node, firstOperandToken, context.sourceCode);
|
|
595
592
|
const fixes = [];
|
|
596
593
|
if (needsParens) {
|
|
597
594
|
fixes.push(fixer.insertTextBefore(node, '('));
|
|
@@ -211,20 +211,10 @@ exports.default = (0, util_1.createRule)({
|
|
|
211
211
|
/* istanbul ignore if */ if (!awaitToken) {
|
|
212
212
|
return null;
|
|
213
213
|
}
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
// Also remove any extraneous whitespace after `await`, if there is any.
|
|
217
|
-
const nextToken = context.sourceCode.getTokenAfter(awaitToken, {
|
|
218
|
-
includeComments: true,
|
|
219
|
-
});
|
|
220
|
-
if (nextToken) {
|
|
221
|
-
endAt = nextToken.range[0];
|
|
222
|
-
}
|
|
223
|
-
const awaitRemovalFix = fixer.removeRange([startAt, endAt]);
|
|
214
|
+
const awaitTokenRemovalRange = (0, util_1.getAwaitTokenRemovalRange)(context.sourceCode, awaitToken);
|
|
215
|
+
const awaitRemovalFix = fixer.removeRange(awaitTokenRemovalRange);
|
|
224
216
|
const firstOperandToken = (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(awaitToken), util_1.NullThrowsReasons.MissingToken('operand', 'await expression'));
|
|
225
|
-
|
|
226
|
-
(0, util_1.isStartOfArrowFunctionBody)(node, context.sourceCode);
|
|
227
|
-
if (shouldWrapInParentheses) {
|
|
217
|
+
if ((0, util_1.isStartOfArrowFunctionBodyNeedingParentheses)(node, firstOperandToken, context.sourceCode)) {
|
|
228
218
|
return [
|
|
229
219
|
awaitRemovalFix,
|
|
230
220
|
fixer.insertTextBefore(node.argument, '('),
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAwaitTokenRemovalRange = getAwaitTokenRemovalRange;
|
|
4
|
+
function getAwaitTokenRemovalRange(sourceCode, awaitToken) {
|
|
5
|
+
const startAt = awaitToken.range[0];
|
|
6
|
+
let endAt = awaitToken.range[1];
|
|
7
|
+
const nextToken = sourceCode.getTokenAfter(awaitToken, {
|
|
8
|
+
includeComments: true,
|
|
9
|
+
});
|
|
10
|
+
/* istanbul ignore else */ if (nextToken) {
|
|
11
|
+
endAt = nextToken.range[0];
|
|
12
|
+
}
|
|
13
|
+
return [startAt, endAt];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=getAwaitTokenRemovalRange.js.map
|
package/dist/util/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './baseTypeUtils';
|
|
|
4
4
|
export * from './collectUnusedVariables';
|
|
5
5
|
export * from './createRule';
|
|
6
6
|
export * from './FunctionSignature';
|
|
7
|
+
export * from './getAwaitTokenRemovalRange';
|
|
7
8
|
export * from './getBaseTypesOfClassMember';
|
|
8
9
|
export * from './getFixOrSuggest';
|
|
9
10
|
export * from './getFunctionHeadLoc';
|
|
@@ -19,8 +20,9 @@ export * from './isAssignee';
|
|
|
19
20
|
export * from './isConditionalTest';
|
|
20
21
|
export * from './isNodeEqual';
|
|
21
22
|
export * from './isNullLiteral';
|
|
22
|
-
export * from './
|
|
23
|
+
export * from './isStartOfArrowFunctionBodyNeedingParentheses';
|
|
23
24
|
export * from './isStartOfExpressionStatement';
|
|
25
|
+
export * from './isStartOfExpressionStatementNeedingParentheses';
|
|
24
26
|
export * from './isUndefinedIdentifier';
|
|
25
27
|
export * from './misc';
|
|
26
28
|
export * from './needsPrecedingSemiColon';
|
package/dist/util/index.js
CHANGED
|
@@ -21,6 +21,7 @@ __exportStar(require("./baseTypeUtils"), exports);
|
|
|
21
21
|
__exportStar(require("./collectUnusedVariables"), exports);
|
|
22
22
|
__exportStar(require("./createRule"), exports);
|
|
23
23
|
__exportStar(require("./FunctionSignature"), exports);
|
|
24
|
+
__exportStar(require("./getAwaitTokenRemovalRange"), exports);
|
|
24
25
|
__exportStar(require("./getBaseTypesOfClassMember"), exports);
|
|
25
26
|
__exportStar(require("./getFixOrSuggest"), exports);
|
|
26
27
|
__exportStar(require("./getFunctionHeadLoc"), exports);
|
|
@@ -36,8 +37,9 @@ __exportStar(require("./isAssignee"), exports);
|
|
|
36
37
|
__exportStar(require("./isConditionalTest"), exports);
|
|
37
38
|
__exportStar(require("./isNodeEqual"), exports);
|
|
38
39
|
__exportStar(require("./isNullLiteral"), exports);
|
|
39
|
-
__exportStar(require("./
|
|
40
|
+
__exportStar(require("./isStartOfArrowFunctionBodyNeedingParentheses"), exports);
|
|
40
41
|
__exportStar(require("./isStartOfExpressionStatement"), exports);
|
|
42
|
+
__exportStar(require("./isStartOfExpressionStatementNeedingParentheses"), exports);
|
|
41
43
|
__exportStar(require("./isUndefinedIdentifier"), exports);
|
|
42
44
|
__exportStar(require("./misc"), exports);
|
|
43
45
|
__exportStar(require("./needsPrecedingSemiColon"), exports);
|
package/dist/util/{isStartOfArrowFunctionBody.js → isStartOfArrowFunctionBodyNeedingParentheses.js}
RENAMED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isStartOfArrowFunctionBodyNeedingParentheses = isStartOfArrowFunctionBodyNeedingParentheses;
|
|
4
4
|
const utils_1 = require("@typescript-eslint/utils");
|
|
5
5
|
const astUtils_1 = require("./astUtils");
|
|
6
|
+
function isStartOfArrowFunctionBodyNeedingParentheses(node, firstToken, sourceCode) {
|
|
7
|
+
return ((0, astUtils_1.isOpeningBraceToken)(firstToken) &&
|
|
8
|
+
isStartOfArrowFunctionBody(node, sourceCode));
|
|
9
|
+
}
|
|
6
10
|
function isStartOfArrowFunctionBody(node, sourceCode) {
|
|
7
11
|
let current = node;
|
|
8
12
|
while (true) {
|
|
@@ -23,4 +27,4 @@ function isStartOfArrowFunctionBody(node, sourceCode) {
|
|
|
23
27
|
current = parent;
|
|
24
28
|
}
|
|
25
29
|
}
|
|
26
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=isStartOfArrowFunctionBodyNeedingParentheses.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStartOfExpressionStatementNeedingParentheses = isStartOfExpressionStatementNeedingParentheses;
|
|
4
|
+
const isStartOfExpressionStatement_1 = require("./isStartOfExpressionStatement");
|
|
5
|
+
function isStartOfExpressionStatementNeedingParentheses(node, firstToken) {
|
|
6
|
+
return (['{', 'class', 'function'].includes(firstToken.value) &&
|
|
7
|
+
(0, isStartOfExpressionStatement_1.isStartOfExpressionStatement)(node));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=isStartOfExpressionStatementNeedingParentheses.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
|
3
|
-
"version": "8.70.1-alpha.
|
|
3
|
+
"version": "8.70.1-alpha.14",
|
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@eslint-community/regexpp": "^4.12.2",
|
|
50
|
-
"@typescript-eslint/scope-manager": "8.70.1-alpha.
|
|
51
|
-
"@typescript-eslint/type-utils": "8.70.1-alpha.
|
|
52
|
-
"@typescript-eslint/utils": "8.70.1-alpha.
|
|
53
|
-
"@typescript-eslint/visitor-keys": "8.70.1-alpha.
|
|
50
|
+
"@typescript-eslint/scope-manager": "8.70.1-alpha.14",
|
|
51
|
+
"@typescript-eslint/type-utils": "8.70.1-alpha.14",
|
|
52
|
+
"@typescript-eslint/utils": "8.70.1-alpha.14",
|
|
53
|
+
"@typescript-eslint/visitor-keys": "8.70.1-alpha.14",
|
|
54
54
|
"ignore": "^7.0.5",
|
|
55
55
|
"natural-compare": "^1.4.0",
|
|
56
56
|
"ts-api-utils": "^2.5.0"
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"@types/mdast": "^4.0.4",
|
|
61
61
|
"@types/natural-compare": "^1.4.3",
|
|
62
62
|
"@types/react": "^18.3.21",
|
|
63
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "8.70.1-alpha.
|
|
64
|
-
"@typescript-eslint/rule-tester": "8.70.1-alpha.
|
|
63
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "8.70.1-alpha.14",
|
|
64
|
+
"@typescript-eslint/rule-tester": "8.70.1-alpha.14",
|
|
65
65
|
"@typescript/native": "npm:typescript@^7.0.2",
|
|
66
66
|
"@vitest/coverage-v8": "^4.0.18",
|
|
67
67
|
"ajv": "^6.12.6",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"vitest": "^4.0.18"
|
|
82
82
|
},
|
|
83
83
|
"peerDependencies": {
|
|
84
|
-
"@typescript-eslint/parser": "^8.70.1-alpha.
|
|
84
|
+
"@typescript-eslint/parser": "^8.70.1-alpha.14",
|
|
85
85
|
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
|
|
86
86
|
"typescript": ">=4.8.4 <6.1.0"
|
|
87
87
|
},
|