@typescript-eslint/eslint-plugin 7.13.1-alpha.2 → 7.13.1-alpha.4
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/explicit-member-accessibility.js +4 -54
- package/dist/rules/explicit-member-accessibility.js.map +1 -1
- package/dist/rules/no-unsafe-member-access.js +8 -2
- package/dist/rules/no-unsafe-member-access.js.map +1 -1
- package/dist/rules/prefer-readonly.js +16 -7
- package/dist/rules/prefer-readonly.js.map +1 -1
- package/dist/rules/return-await.js +36 -2
- package/dist/rules/return-await.js.map +1 -1
- package/dist/util/getMemberHeadLoc.js +81 -0
- package/dist/util/getMemberHeadLoc.js.map +1 -0
- package/docs/rules/return-await.mdx +17 -6
- package/package.json +7 -7
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const utils_1 = require("@typescript-eslint/utils");
|
|
4
4
|
const util_1 = require("../util");
|
|
5
|
+
const getMemberHeadLoc_1 = require("../util/getMemberHeadLoc");
|
|
5
6
|
exports.default = (0, util_1.createRule)({
|
|
6
7
|
name: 'explicit-member-accessibility',
|
|
7
8
|
meta: {
|
|
@@ -119,7 +120,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
119
120
|
}
|
|
120
121
|
else if (check === 'explicit' && !methodDefinition.accessibility) {
|
|
121
122
|
context.report({
|
|
122
|
-
loc:
|
|
123
|
+
loc: (0, getMemberHeadLoc_1.getMemberHeadLoc)(context.sourceCode, methodDefinition),
|
|
123
124
|
messageId: 'missingAccessibility',
|
|
124
125
|
data: {
|
|
125
126
|
type: nodeType,
|
|
@@ -163,57 +164,6 @@ exports.default = (0, util_1.createRule)({
|
|
|
163
164
|
}
|
|
164
165
|
return { range: keywordRange, rangeToRemove };
|
|
165
166
|
}
|
|
166
|
-
/**
|
|
167
|
-
* For missing accessibility modifiers, we want to report any keywords
|
|
168
|
-
* out in front of the key, and the key itself, but not anything afterwards,
|
|
169
|
-
* i.e. parens, type annotations, method bodies, or `?`.
|
|
170
|
-
*/
|
|
171
|
-
function getMissingAccessibilityReportLoc(node) {
|
|
172
|
-
let start;
|
|
173
|
-
if (node.decorators.length === 0) {
|
|
174
|
-
start = node.loc.start;
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
const lastDecorator = node.decorators[node.decorators.length - 1];
|
|
178
|
-
const nextToken = (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(lastDecorator), util_1.NullThrowsReasons.MissingToken('token', 'last decorator'));
|
|
179
|
-
start = nextToken.loc.start;
|
|
180
|
-
}
|
|
181
|
-
let end;
|
|
182
|
-
if (!node.computed) {
|
|
183
|
-
end = node.key.loc.end;
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
const closingBracket = (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(node.key, token => token.value === ']'), util_1.NullThrowsReasons.MissingToken(']', node.type));
|
|
187
|
-
end = closingBracket.loc.end;
|
|
188
|
-
}
|
|
189
|
-
return {
|
|
190
|
-
start: structuredClone(start),
|
|
191
|
-
end: structuredClone(end),
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* For missing accessibility modifiers, we want to report any keywords
|
|
196
|
-
* out in front of the key, and the key itself, but not anything afterwards,
|
|
197
|
-
* i.e. parens, type annotations, method bodies, or `?`.
|
|
198
|
-
*/
|
|
199
|
-
function getMissingAccessibilityReportLocForParameterProperty(node, nodeName) {
|
|
200
|
-
// Parameter properties have a weirdly different AST structure
|
|
201
|
-
// than other class members.
|
|
202
|
-
let start;
|
|
203
|
-
if (node.decorators.length === 0) {
|
|
204
|
-
start = structuredClone(node.loc.start);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
const lastDecorator = node.decorators[node.decorators.length - 1];
|
|
208
|
-
const nextToken = (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(lastDecorator), util_1.NullThrowsReasons.MissingToken('token', 'last decorator'));
|
|
209
|
-
start = structuredClone(nextToken.loc.start);
|
|
210
|
-
}
|
|
211
|
-
const end = context.sourceCode.getLocFromIndex(node.parameter.range[0] + nodeName.length);
|
|
212
|
-
return {
|
|
213
|
-
start,
|
|
214
|
-
end,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
167
|
/**
|
|
218
168
|
* Creates a fixer that adds an accessibility modifier keyword
|
|
219
169
|
*/
|
|
@@ -270,7 +220,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
270
220
|
else if (propCheck === 'explicit' &&
|
|
271
221
|
!propertyDefinition.accessibility) {
|
|
272
222
|
context.report({
|
|
273
|
-
loc:
|
|
223
|
+
loc: (0, getMemberHeadLoc_1.getMemberHeadLoc)(context.sourceCode, propertyDefinition),
|
|
274
224
|
messageId: 'missingAccessibility',
|
|
275
225
|
data: {
|
|
276
226
|
type: nodeType,
|
|
@@ -299,7 +249,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
299
249
|
case 'explicit': {
|
|
300
250
|
if (!node.accessibility) {
|
|
301
251
|
context.report({
|
|
302
|
-
loc:
|
|
252
|
+
loc: (0, getMemberHeadLoc_1.getParameterPropertyHeadLoc)(context.sourceCode, node, nodeName),
|
|
303
253
|
messageId: 'missingAccessibility',
|
|
304
254
|
data: {
|
|
305
255
|
type: nodeType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explicit-member-accessibility.js","sourceRoot":"","sources":["../../src/rules/explicit-member-accessibility.ts"],"names":[],"mappings":";;AACA,oDAA2E;AAE3E,kCAKiB;
|
|
1
|
+
{"version":3,"file":"explicit-member-accessibility.js","sourceRoot":"","sources":["../../src/rules/explicit-member-accessibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
const utils_1 = require("@typescript-eslint/utils");
|
|
27
27
|
const tsutils = __importStar(require("ts-api-utils"));
|
|
28
28
|
const util_1 = require("../util");
|
|
29
|
+
function createDataType(type) {
|
|
30
|
+
const isErrorType = tsutils.isIntrinsicErrorType(type);
|
|
31
|
+
return isErrorType ? '`error` typed' : '`any`';
|
|
32
|
+
}
|
|
29
33
|
exports.default = (0, util_1.createRule)({
|
|
30
34
|
name: 'no-unsafe-member-access',
|
|
31
35
|
meta: {
|
|
@@ -36,12 +40,12 @@ exports.default = (0, util_1.createRule)({
|
|
|
36
40
|
requiresTypeChecking: true,
|
|
37
41
|
},
|
|
38
42
|
messages: {
|
|
39
|
-
unsafeMemberExpression: 'Unsafe member access {{property}} on an
|
|
43
|
+
unsafeMemberExpression: 'Unsafe member access {{property}} on an {{type}} value.',
|
|
40
44
|
unsafeThisMemberExpression: [
|
|
41
45
|
'Unsafe member access {{property}} on an `any` value. `this` is typed as `any`.',
|
|
42
46
|
'You can try to fix this by turning on the `noImplicitThis` compiler option, or adding a `this` parameter to the function.',
|
|
43
47
|
].join('\n'),
|
|
44
|
-
unsafeComputedMemberAccess: 'Computed name {{property}} resolves to an
|
|
48
|
+
unsafeComputedMemberAccess: 'Computed name {{property}} resolves to an {{type}} value.',
|
|
45
49
|
},
|
|
46
50
|
schema: [],
|
|
47
51
|
},
|
|
@@ -84,6 +88,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
84
88
|
messageId,
|
|
85
89
|
data: {
|
|
86
90
|
property: node.computed ? `[${propertyName}]` : `.${propertyName}`,
|
|
91
|
+
type: createDataType(type),
|
|
87
92
|
},
|
|
88
93
|
});
|
|
89
94
|
}
|
|
@@ -111,6 +116,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
111
116
|
messageId: 'unsafeComputedMemberAccess',
|
|
112
117
|
data: {
|
|
113
118
|
property: `[${propertyName}]`,
|
|
119
|
+
type: createDataType(type),
|
|
114
120
|
},
|
|
115
121
|
});
|
|
116
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-unsafe-member-access.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-member-access.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA0D;AAC1D,sDAAwC;
|
|
1
|
+
{"version":3,"file":"no-unsafe-member-access.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-member-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ const utils_1 = require("@typescript-eslint/utils");
|
|
|
27
27
|
const tsutils = __importStar(require("ts-api-utils"));
|
|
28
28
|
const ts = __importStar(require("typescript"));
|
|
29
29
|
const util_1 = require("../util");
|
|
30
|
+
const getMemberHeadLoc_1 = require("../util/getMemberHeadLoc");
|
|
30
31
|
const functionScopeBoundaries = [
|
|
31
32
|
utils_1.AST_NODE_TYPES.ArrowFunctionExpression,
|
|
32
33
|
utils_1.AST_NODE_TYPES.FunctionDeclaration,
|
|
@@ -121,12 +122,6 @@ exports.default = (0, util_1.createRule)({
|
|
|
121
122
|
return tsutils.isFunctionScopeBoundary(tsNode);
|
|
122
123
|
}
|
|
123
124
|
function getEsNodesFromViolatingNode(violatingNode) {
|
|
124
|
-
if (ts.isParameterPropertyDeclaration(violatingNode, violatingNode.parent)) {
|
|
125
|
-
return {
|
|
126
|
-
esNode: services.tsNodeToESTreeNodeMap.get(violatingNode.name),
|
|
127
|
-
nameNode: services.tsNodeToESTreeNodeMap.get(violatingNode.name),
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
125
|
return {
|
|
131
126
|
esNode: services.tsNodeToESTreeNodeMap.get(violatingNode),
|
|
132
127
|
nameNode: services.tsNodeToESTreeNodeMap.get(violatingNode.name),
|
|
@@ -140,13 +135,27 @@ exports.default = (0, util_1.createRule)({
|
|
|
140
135
|
const finalizedClassScope = (0, util_1.nullThrows)(classScopeStack.pop(), 'Stack should exist on class exit');
|
|
141
136
|
for (const violatingNode of finalizedClassScope.finalizeUnmodifiedPrivateNonReadonlys()) {
|
|
142
137
|
const { esNode, nameNode } = getEsNodesFromViolatingNode(violatingNode);
|
|
138
|
+
const reportNodeOrLoc = (() => {
|
|
139
|
+
switch (esNode.type) {
|
|
140
|
+
case utils_1.AST_NODE_TYPES.MethodDefinition:
|
|
141
|
+
case utils_1.AST_NODE_TYPES.PropertyDefinition:
|
|
142
|
+
case utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
|
|
143
|
+
return { loc: (0, getMemberHeadLoc_1.getMemberHeadLoc)(context.sourceCode, esNode) };
|
|
144
|
+
case utils_1.AST_NODE_TYPES.TSParameterProperty:
|
|
145
|
+
return {
|
|
146
|
+
loc: (0, getMemberHeadLoc_1.getParameterPropertyHeadLoc)(context.sourceCode, esNode, nameNode.name),
|
|
147
|
+
};
|
|
148
|
+
default:
|
|
149
|
+
return { node: esNode };
|
|
150
|
+
}
|
|
151
|
+
})();
|
|
143
152
|
context.report({
|
|
153
|
+
...reportNodeOrLoc,
|
|
144
154
|
data: {
|
|
145
155
|
name: context.sourceCode.getText(nameNode),
|
|
146
156
|
},
|
|
147
157
|
fix: fixer => fixer.insertTextBefore(nameNode, 'readonly '),
|
|
148
158
|
messageId: 'preferReadonly',
|
|
149
|
-
node: esNode,
|
|
150
159
|
});
|
|
151
160
|
}
|
|
152
161
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-readonly.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAoE;AACpE,sDAAwC;AACxC,+CAAiC;AAEjC,kCAKiB;
|
|
1
|
+
{"version":3,"file":"prefer-readonly.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
32
32
|
name: 'return-await',
|
|
33
33
|
meta: {
|
|
34
34
|
docs: {
|
|
35
|
-
description: 'Enforce consistent
|
|
35
|
+
description: 'Enforce consistent awaiting of returned promises',
|
|
36
36
|
requiresTypeChecking: true,
|
|
37
37
|
extendsBaseRule: 'no-return-await',
|
|
38
38
|
},
|
|
@@ -67,6 +67,39 @@ exports.default = (0, util_1.createRule)({
|
|
|
67
67
|
function exitFunction() {
|
|
68
68
|
scopeInfoStack.pop();
|
|
69
69
|
}
|
|
70
|
+
function affectsExplicitResourceManagement(node) {
|
|
71
|
+
// just need to determine if there is a `using` declaration in scope.
|
|
72
|
+
let scope = context.sourceCode.getScope(node);
|
|
73
|
+
const functionScope = scope.variableScope;
|
|
74
|
+
while (true) {
|
|
75
|
+
for (const variable of scope.variables) {
|
|
76
|
+
if (variable.defs.length !== 1) {
|
|
77
|
+
// This can't be the case for `using` or `await using` since it's
|
|
78
|
+
// an error to redeclare those more than once in the same scope,
|
|
79
|
+
// unlike, say, `var` declarations.
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const declaration = variable.defs[0];
|
|
83
|
+
const declaratorNode = declaration.node;
|
|
84
|
+
const declarationNode = declaratorNode.parent;
|
|
85
|
+
// if it's a using/await using declaration, and it comes _before_ the
|
|
86
|
+
// node we're checking, it affects control flow for that node.
|
|
87
|
+
if (['using', 'await using'].includes(declarationNode.kind) &&
|
|
88
|
+
declaratorNode.range[1] < node.range[0]) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (scope === functionScope) {
|
|
93
|
+
// We've checked all the relevant scopes
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
// This should always exist, since the rule should only be checking
|
|
97
|
+
// contexts in which `return` statements are legal, which should always
|
|
98
|
+
// be inside a function.
|
|
99
|
+
scope = (0, util_1.nullThrows)(scope.upper, 'Expected parent scope to exist. return-await should only operate on return statements within functions');
|
|
100
|
+
}
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
70
103
|
/**
|
|
71
104
|
* Tests whether a node is inside of an explicit error handling context
|
|
72
105
|
* (try/catch/finally) in a way that throwing an exception will have an
|
|
@@ -201,7 +234,8 @@ exports.default = (0, util_1.createRule)({
|
|
|
201
234
|
});
|
|
202
235
|
return;
|
|
203
236
|
}
|
|
204
|
-
const affectsErrorHandling = affectsExplicitErrorHandling(expression)
|
|
237
|
+
const affectsErrorHandling = affectsExplicitErrorHandling(expression) ||
|
|
238
|
+
affectsExplicitResourceManagement(node);
|
|
205
239
|
const useAutoFix = !affectsErrorHandling;
|
|
206
240
|
if (option === 'always') {
|
|
207
241
|
if (!isAwait && isThenable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"return-await.js","sourceRoot":"","sources":["../../src/rules/return-await.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA0D;AAC1D,sDAAwC;AACxC,+CAAiC;AAEjC,kCAQiB;AACjB,yEAAsE;AAYtE,kBAAe,IAAA,iBAAU,EAAC;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"return-await.js","sourceRoot":"","sources":["../../src/rules/return-await.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getParameterPropertyHeadLoc = exports.getMemberHeadLoc = void 0;
|
|
4
|
+
const eslint_utils_1 = require("@typescript-eslint/utils/eslint-utils");
|
|
5
|
+
/**
|
|
6
|
+
* Generates report loc suitable for reporting on how a class member is
|
|
7
|
+
* declared, rather than how it's implemented.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* class A {
|
|
11
|
+
* abstract method(): void;
|
|
12
|
+
* ~~~~~~~~~~~~~~~
|
|
13
|
+
*
|
|
14
|
+
* concreteMethod(): void {
|
|
15
|
+
* ~~~~~~~~~~~~~~
|
|
16
|
+
* // code
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* abstract private property?: string;
|
|
20
|
+
* ~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
21
|
+
*
|
|
22
|
+
* @decorator override concreteProperty = 'value';
|
|
23
|
+
* ~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
function getMemberHeadLoc(sourceCode, node) {
|
|
28
|
+
let start;
|
|
29
|
+
if (node.decorators.length === 0) {
|
|
30
|
+
start = node.loc.start;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const lastDecorator = node.decorators[node.decorators.length - 1];
|
|
34
|
+
const nextToken = (0, eslint_utils_1.nullThrows)(sourceCode.getTokenAfter(lastDecorator), eslint_utils_1.NullThrowsReasons.MissingToken('token', 'last decorator'));
|
|
35
|
+
start = nextToken.loc.start;
|
|
36
|
+
}
|
|
37
|
+
let end;
|
|
38
|
+
if (!node.computed) {
|
|
39
|
+
end = node.key.loc.end;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const closingBracket = (0, eslint_utils_1.nullThrows)(sourceCode.getTokenAfter(node.key, token => token.value === ']'), eslint_utils_1.NullThrowsReasons.MissingToken(']', node.type));
|
|
43
|
+
end = closingBracket.loc.end;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
start: structuredClone(start),
|
|
47
|
+
end: structuredClone(end),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
exports.getMemberHeadLoc = getMemberHeadLoc;
|
|
51
|
+
/**
|
|
52
|
+
* Generates report loc suitable for reporting on how a parameter property is
|
|
53
|
+
* declared.
|
|
54
|
+
*
|
|
55
|
+
* ```ts
|
|
56
|
+
* class A {
|
|
57
|
+
* constructor(private property: string = 'value') {
|
|
58
|
+
* ~~~~~~~~~~~~~~~~
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
function getParameterPropertyHeadLoc(sourceCode, node, nodeName) {
|
|
63
|
+
// Parameter properties have a weirdly different AST structure
|
|
64
|
+
// than other class members.
|
|
65
|
+
let start;
|
|
66
|
+
if (node.decorators.length === 0) {
|
|
67
|
+
start = structuredClone(node.loc.start);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const lastDecorator = node.decorators[node.decorators.length - 1];
|
|
71
|
+
const nextToken = (0, eslint_utils_1.nullThrows)(sourceCode.getTokenAfter(lastDecorator), eslint_utils_1.NullThrowsReasons.MissingToken('token', 'last decorator'));
|
|
72
|
+
start = structuredClone(nextToken.loc.start);
|
|
73
|
+
}
|
|
74
|
+
const end = sourceCode.getLocFromIndex(node.parameter.range[0] + nodeName.length);
|
|
75
|
+
return {
|
|
76
|
+
start,
|
|
77
|
+
end,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
exports.getParameterPropertyHeadLoc = getParameterPropertyHeadLoc;
|
|
81
|
+
//# sourceMappingURL=getMemberHeadLoc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMemberHeadLoc.js","sourceRoot":"","sources":["../../src/util/getMemberHeadLoc.ts"],"names":[],"mappings":";;;AACA,wEAG+C;AAE/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,gBAAgB,CAC9B,UAAyC,EACzC,IAIyC;IAEzC,IAAI,KAAwB,CAAC;IAE7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,yBAAU,EAC1B,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,EACvC,gCAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAC1D,CAAC;QACF,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,GAAsB,CAAC;IAE3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,IAAA,yBAAU,EAC/B,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,EAChE,gCAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;QACF,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;QAC7B,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC;KAC1B,CAAC;AACJ,CAAC;AArCD,4CAqCC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,2BAA2B,CACzC,UAAyC,EACzC,IAAkC,EAClC,QAAgB;IAEhB,8DAA8D;IAC9D,4BAA4B;IAE5B,IAAI,KAAwB,CAAC;IAE7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,yBAAU,EAC1B,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,EACvC,gCAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAC1D,CAAC;QACF,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAC1C,CAAC;IAEF,OAAO;QACL,KAAK;QACL,GAAG;KACJ,CAAC;AACJ,CAAC;AA7BD,kEA6BC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Enforce consistent
|
|
2
|
+
description: 'Enforce consistent awaiting of returned promises.'
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
import Tabs from '@theme/Tabs';
|
|
@@ -9,12 +9,14 @@ import TabItem from '@theme/TabItem';
|
|
|
9
9
|
>
|
|
10
10
|
> See **https://typescript-eslint.io/rules/return-await** for documentation.
|
|
11
11
|
|
|
12
|
-
Returning an awaited promise can make sense for better stack trace information as well as for consistent error handling (returned promises will not be caught in an async function try/catch).
|
|
13
|
-
|
|
14
12
|
This rule builds on top of the [`eslint/no-return-await`](https://eslint.org/docs/rules/no-return-await) rule.
|
|
15
13
|
It expands upon the base rule to add support for optionally requiring `return await` in certain cases.
|
|
16
14
|
|
|
17
|
-
The extended rule is named `return-await` instead of `no-return-await` because the extended rule can enforce the positive or the negative. Additionally, while the core rule is now deprecated, the extended rule is still useful in many contexts
|
|
15
|
+
The extended rule is named `return-await` instead of `no-return-await` because the extended rule can enforce the positive or the negative. Additionally, while the core rule is now deprecated, the extended rule is still useful in many contexts:
|
|
16
|
+
|
|
17
|
+
- Returning an awaited promise [improves stack trace information](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#improving_stack_trace).
|
|
18
|
+
- When the `return` statement is in `try...catch`, awaiting the promise also allows the promise's rejection to be caught instead of leaving the error to the caller.
|
|
19
|
+
- Contrary to popular belief, `return await promise;` is [at least as fast as directly returning the promise](https://github.com/tc39/proposal-faster-promise-adoption).
|
|
18
20
|
|
|
19
21
|
## Options
|
|
20
22
|
|
|
@@ -35,8 +37,7 @@ Listing the error-handling cases exhaustively:
|
|
|
35
37
|
- if you `return` a promise within a `catch`, and there is _no_ `finally`, then it must _not_ be `await`ed.
|
|
36
38
|
- if you `return` a promise within a `catch`, and there _is_ a `finally`, then it _must_ be `await`ed.
|
|
37
39
|
- if you `return` a promise within a `finally`, then it must not be `await`ed.
|
|
38
|
-
|
|
39
|
-
Examples of code with `in-try-catch`:
|
|
40
|
+
- if you `return` a promise between a `using` or `await using` declaration and the end of its scope, it must be `await`ed, since it behaves equivalently to code wrapped in a `try` block.
|
|
40
41
|
|
|
41
42
|
<Tabs>
|
|
42
43
|
<TabItem value="❌ Incorrect">
|
|
@@ -95,6 +96,11 @@ async function invalidInTryCatch5() {
|
|
|
95
96
|
async function invalidInTryCatch6() {
|
|
96
97
|
return await 'value';
|
|
97
98
|
}
|
|
99
|
+
|
|
100
|
+
async function invalidInTryCatch7() {
|
|
101
|
+
using x = createDisposable();
|
|
102
|
+
return Promise.reject('using in scope');
|
|
103
|
+
}
|
|
98
104
|
```
|
|
99
105
|
|
|
100
106
|
</TabItem>
|
|
@@ -151,6 +157,11 @@ async function validInTryCatch5() {
|
|
|
151
157
|
async function validInTryCatch6() {
|
|
152
158
|
return 'value';
|
|
153
159
|
}
|
|
160
|
+
|
|
161
|
+
async function validInTryCatch7() {
|
|
162
|
+
using x = createDisposable();
|
|
163
|
+
return await Promise.reject('using in scope');
|
|
164
|
+
}
|
|
154
165
|
```
|
|
155
166
|
|
|
156
167
|
</TabItem>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
|
3
|
-
"version": "7.13.1-alpha.
|
|
3
|
+
"version": "7.13.1-alpha.4",
|
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@eslint-community/regexpp": "^4.10.0",
|
|
63
|
-
"@typescript-eslint/scope-manager": "7.13.1-alpha.
|
|
64
|
-
"@typescript-eslint/type-utils": "7.13.1-alpha.
|
|
65
|
-
"@typescript-eslint/utils": "7.13.1-alpha.
|
|
66
|
-
"@typescript-eslint/visitor-keys": "7.13.1-alpha.
|
|
63
|
+
"@typescript-eslint/scope-manager": "7.13.1-alpha.4",
|
|
64
|
+
"@typescript-eslint/type-utils": "7.13.1-alpha.4",
|
|
65
|
+
"@typescript-eslint/utils": "7.13.1-alpha.4",
|
|
66
|
+
"@typescript-eslint/visitor-keys": "7.13.1-alpha.4",
|
|
67
67
|
"graphemer": "^1.4.0",
|
|
68
68
|
"ignore": "^5.3.1",
|
|
69
69
|
"natural-compare": "^1.4.0",
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"@types/marked": "^5.0.2",
|
|
75
75
|
"@types/mdast": "^4.0.3",
|
|
76
76
|
"@types/natural-compare": "*",
|
|
77
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "7.13.1-alpha.
|
|
78
|
-
"@typescript-eslint/rule-tester": "7.13.1-alpha.
|
|
77
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "7.13.1-alpha.4",
|
|
78
|
+
"@typescript-eslint/rule-tester": "7.13.1-alpha.4",
|
|
79
79
|
"ajv": "^6.12.6",
|
|
80
80
|
"cross-env": "^7.0.3",
|
|
81
81
|
"cross-fetch": "*",
|