@typescript-eslint/eslint-plugin 6.0.1-alpha.12 → 6.0.1-alpha.17
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.
|
@@ -28,6 +28,10 @@ const tsutils = __importStar(require("ts-api-utils"));
|
|
|
28
28
|
const ts = __importStar(require("typescript"));
|
|
29
29
|
const util = __importStar(require("../util"));
|
|
30
30
|
const util_1 = require("../util");
|
|
31
|
+
const messageBase = 'Promises must be awaited, end with a call to .catch, or end with a call to .then with a rejection handler.';
|
|
32
|
+
const messageBaseVoid = 'Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler' +
|
|
33
|
+
' or be explicitly marked as ignored with the `void` operator.';
|
|
34
|
+
const messageRejectionHandler = 'A rejection handler that is not a function will be ignored.';
|
|
31
35
|
exports.default = util.createRule({
|
|
32
36
|
name: 'no-floating-promises',
|
|
33
37
|
meta: {
|
|
@@ -38,11 +42,12 @@ exports.default = util.createRule({
|
|
|
38
42
|
},
|
|
39
43
|
hasSuggestions: true,
|
|
40
44
|
messages: {
|
|
41
|
-
floating:
|
|
45
|
+
floating: messageBase,
|
|
42
46
|
floatingFixAwait: 'Add await operator.',
|
|
43
|
-
floatingVoid:
|
|
44
|
-
' or be explicitly marked as ignored with the `void` operator.',
|
|
47
|
+
floatingVoid: messageBaseVoid,
|
|
45
48
|
floatingFixVoid: 'Add void operator to ignore.',
|
|
49
|
+
floatingUselessRejectionHandler: messageBase + ' ' + messageRejectionHandler,
|
|
50
|
+
floatingUselessRejectionHandlerVoid: messageBaseVoid + ' ' + messageRejectionHandler,
|
|
46
51
|
},
|
|
47
52
|
schema: [
|
|
48
53
|
{
|
|
@@ -53,7 +58,7 @@ exports.default = util.createRule({
|
|
|
53
58
|
type: 'boolean',
|
|
54
59
|
},
|
|
55
60
|
ignoreIIFE: {
|
|
56
|
-
description: 'Whether to ignore async IIFEs (Immediately
|
|
61
|
+
description: 'Whether to ignore async IIFEs (Immediately Invoked Function Expressions).',
|
|
57
62
|
type: 'boolean',
|
|
58
63
|
},
|
|
59
64
|
},
|
|
@@ -80,11 +85,14 @@ exports.default = util.createRule({
|
|
|
80
85
|
if (expression.type === utils_1.AST_NODE_TYPES.ChainExpression) {
|
|
81
86
|
expression = expression.expression;
|
|
82
87
|
}
|
|
83
|
-
|
|
88
|
+
const { isUnhandled, nonFunctionHandler } = isUnhandledPromise(checker, expression);
|
|
89
|
+
if (isUnhandled) {
|
|
84
90
|
if (options.ignoreVoid) {
|
|
85
91
|
context.report({
|
|
86
92
|
node,
|
|
87
|
-
messageId:
|
|
93
|
+
messageId: nonFunctionHandler
|
|
94
|
+
? 'floatingUselessRejectionHandlerVoid'
|
|
95
|
+
: 'floatingVoid',
|
|
88
96
|
suggest: [
|
|
89
97
|
{
|
|
90
98
|
messageId: 'floatingFixVoid',
|
|
@@ -107,7 +115,9 @@ exports.default = util.createRule({
|
|
|
107
115
|
else {
|
|
108
116
|
context.report({
|
|
109
117
|
node,
|
|
110
|
-
messageId:
|
|
118
|
+
messageId: nonFunctionHandler
|
|
119
|
+
? 'floatingUselessRejectionHandler'
|
|
120
|
+
: 'floating',
|
|
111
121
|
suggest: [
|
|
112
122
|
{
|
|
113
123
|
messageId: 'floatingFixAwait',
|
|
@@ -150,13 +160,21 @@ exports.default = util.createRule({
|
|
|
150
160
|
utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
|
|
151
161
|
node.expression.callee.type === utils_1.AST_NODE_TYPES.FunctionExpression));
|
|
152
162
|
}
|
|
163
|
+
function isValidRejectionHandler(rejectionHandler) {
|
|
164
|
+
return (services.program
|
|
165
|
+
.getTypeChecker()
|
|
166
|
+
.getTypeAtLocation(services.esTreeNodeToTSNodeMap.get(rejectionHandler))
|
|
167
|
+
.getCallSignatures().length > 0);
|
|
168
|
+
}
|
|
153
169
|
function isUnhandledPromise(checker, node) {
|
|
154
170
|
// First, check expressions whose resulting types may not be promise-like
|
|
155
171
|
if (node.type === utils_1.AST_NODE_TYPES.SequenceExpression) {
|
|
156
172
|
// Any child in a comma expression could return a potentially unhandled
|
|
157
173
|
// promise, so we check them all regardless of whether the final returned
|
|
158
174
|
// value is promise-like.
|
|
159
|
-
return node.expressions
|
|
175
|
+
return (node.expressions
|
|
176
|
+
.map(item => isUnhandledPromise(checker, item))
|
|
177
|
+
.find(result => result.isUnhandled) ?? { isUnhandled: false });
|
|
160
178
|
}
|
|
161
179
|
if (!options.ignoreVoid &&
|
|
162
180
|
node.type === utils_1.AST_NODE_TYPES.UnaryExpression &&
|
|
@@ -167,20 +185,44 @@ exports.default = util.createRule({
|
|
|
167
185
|
}
|
|
168
186
|
// Check the type. At this point it can't be unhandled if it isn't a promise
|
|
169
187
|
if (!isPromiseLike(checker, services.esTreeNodeToTSNodeMap.get(node))) {
|
|
170
|
-
return false;
|
|
188
|
+
return { isUnhandled: false };
|
|
171
189
|
}
|
|
172
190
|
if (node.type === utils_1.AST_NODE_TYPES.CallExpression) {
|
|
173
191
|
// If the outer expression is a call, it must be either a `.then()` or
|
|
174
192
|
// `.catch()` that handles the promise.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
193
|
+
const catchRejectionHandler = getRejectionHandlerFromCatchCall(node);
|
|
194
|
+
if (catchRejectionHandler) {
|
|
195
|
+
if (isValidRejectionHandler(catchRejectionHandler)) {
|
|
196
|
+
return { isUnhandled: false };
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
return { isUnhandled: true, nonFunctionHandler: true };
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const thenRejectionHandler = getRejectionHandlerFromThenCall(node);
|
|
203
|
+
if (thenRejectionHandler) {
|
|
204
|
+
if (isValidRejectionHandler(thenRejectionHandler)) {
|
|
205
|
+
return { isUnhandled: false };
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
return { isUnhandled: true, nonFunctionHandler: true };
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (isPromiseFinallyCallWithHandler(node)) {
|
|
212
|
+
return { isUnhandled: false };
|
|
213
|
+
}
|
|
214
|
+
return { isUnhandled: true };
|
|
178
215
|
}
|
|
179
216
|
else if (node.type === utils_1.AST_NODE_TYPES.ConditionalExpression) {
|
|
180
217
|
// We must be getting the promise-like value from one of the branches of the
|
|
181
218
|
// ternary. Check them directly.
|
|
182
|
-
|
|
183
|
-
|
|
219
|
+
const alternateResult = isUnhandledPromise(checker, node.alternate);
|
|
220
|
+
if (alternateResult.isUnhandled) {
|
|
221
|
+
return alternateResult;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
return isUnhandledPromise(checker, node.consequent);
|
|
225
|
+
}
|
|
184
226
|
}
|
|
185
227
|
else if (node.type === utils_1.AST_NODE_TYPES.MemberExpression ||
|
|
186
228
|
node.type === utils_1.AST_NODE_TYPES.Identifier ||
|
|
@@ -188,16 +230,21 @@ exports.default = util.createRule({
|
|
|
188
230
|
// If it is just a property access chain or a `new` call (e.g. `foo.bar` or
|
|
189
231
|
// `new Promise()`), the promise is not handled because it doesn't have the
|
|
190
232
|
// necessary then/catch call at the end of the chain.
|
|
191
|
-
return true;
|
|
233
|
+
return { isUnhandled: true };
|
|
192
234
|
}
|
|
193
235
|
else if (node.type === utils_1.AST_NODE_TYPES.LogicalExpression) {
|
|
194
|
-
|
|
195
|
-
|
|
236
|
+
const leftResult = isUnhandledPromise(checker, node.left);
|
|
237
|
+
if (leftResult.isUnhandled) {
|
|
238
|
+
return leftResult;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
return isUnhandledPromise(checker, node.right);
|
|
242
|
+
}
|
|
196
243
|
}
|
|
197
244
|
// We conservatively return false for all other types of expressions because
|
|
198
245
|
// we don't want to accidentally fail if the promise is handled internally but
|
|
199
246
|
// we just can't tell.
|
|
200
|
-
return false;
|
|
247
|
+
return { isUnhandled: false };
|
|
201
248
|
}
|
|
202
249
|
},
|
|
203
250
|
});
|
|
@@ -238,17 +285,27 @@ function isFunctionParam(checker, param, node) {
|
|
|
238
285
|
}
|
|
239
286
|
return false;
|
|
240
287
|
}
|
|
241
|
-
function
|
|
242
|
-
|
|
288
|
+
function getRejectionHandlerFromCatchCall(expression) {
|
|
289
|
+
if (expression.callee.type === utils_1.AST_NODE_TYPES.MemberExpression &&
|
|
243
290
|
expression.callee.property.type === utils_1.AST_NODE_TYPES.Identifier &&
|
|
244
291
|
expression.callee.property.name === 'catch' &&
|
|
245
|
-
expression.arguments.length >= 1)
|
|
292
|
+
expression.arguments.length >= 1) {
|
|
293
|
+
return expression.arguments[0];
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
246
298
|
}
|
|
247
|
-
function
|
|
248
|
-
|
|
299
|
+
function getRejectionHandlerFromThenCall(expression) {
|
|
300
|
+
if (expression.callee.type === utils_1.AST_NODE_TYPES.MemberExpression &&
|
|
249
301
|
expression.callee.property.type === utils_1.AST_NODE_TYPES.Identifier &&
|
|
250
302
|
expression.callee.property.name === 'then' &&
|
|
251
|
-
expression.arguments.length >= 2)
|
|
303
|
+
expression.arguments.length >= 2) {
|
|
304
|
+
return expression.arguments[1];
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
return undefined;
|
|
308
|
+
}
|
|
252
309
|
}
|
|
253
310
|
function isPromiseFinallyCallWithHandler(expression) {
|
|
254
311
|
return (expression.callee.type === utils_1.AST_NODE_TYPES.MemberExpression &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-promises.js","sourceRoot":"","sources":["../../src/rules/no-floating-promises.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA0D;AAC1D,sDAAwC;AACxC,+CAAiC;AAEjC,8CAAgC;AAChC,kCAA6C;
|
|
1
|
+
{"version":3,"file":"no-floating-promises.js","sourceRoot":"","sources":["../../src/rules/no-floating-promises.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,7 +83,7 @@ With this option set to `true`, and if you are using `no-void`, you should turn
|
|
|
83
83
|
|
|
84
84
|
### `ignoreIIFE`
|
|
85
85
|
|
|
86
|
-
This allows you to skip checking of async IIFEs (Immediately
|
|
86
|
+
This allows you to skip checking of async IIFEs (Immediately Invoked function Expressions).
|
|
87
87
|
|
|
88
88
|
Examples of **correct** code for this rule with `{ ignoreIIFE: true }`:
|
|
89
89
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
|
3
|
-
"version": "6.0.1-alpha.
|
|
3
|
+
"version": "6.0.1-alpha.17+606a52cef",
|
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@eslint-community/regexpp": "^4.5.1",
|
|
60
|
-
"@typescript-eslint/scope-manager": "6.0.1-alpha.
|
|
61
|
-
"@typescript-eslint/type-utils": "6.0.1-alpha.
|
|
62
|
-
"@typescript-eslint/utils": "6.0.1-alpha.
|
|
63
|
-
"@typescript-eslint/visitor-keys": "6.0.1-alpha.
|
|
60
|
+
"@typescript-eslint/scope-manager": "6.0.1-alpha.17+606a52cef",
|
|
61
|
+
"@typescript-eslint/type-utils": "6.0.1-alpha.17+606a52cef",
|
|
62
|
+
"@typescript-eslint/utils": "6.0.1-alpha.17+606a52cef",
|
|
63
|
+
"@typescript-eslint/visitor-keys": "6.0.1-alpha.17+606a52cef",
|
|
64
64
|
"debug": "^4.3.4",
|
|
65
65
|
"graphemer": "^1.4.0",
|
|
66
66
|
"ignore": "^5.2.4",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"@types/natural-compare": "*",
|
|
76
76
|
"@types/prettier": "*",
|
|
77
77
|
"@typescript-eslint/rule-schema-to-typescript-types": "6.0.0",
|
|
78
|
-
"@typescript-eslint/rule-tester": "6.0.1-alpha.
|
|
78
|
+
"@typescript-eslint/rule-tester": "6.0.1-alpha.17+606a52cef",
|
|
79
79
|
"ajv": "^6.12.6",
|
|
80
80
|
"chalk": "^5.3.0",
|
|
81
81
|
"cross-fetch": "*",
|
|
@@ -100,5 +100,5 @@
|
|
|
100
100
|
"type": "opencollective",
|
|
101
101
|
"url": "https://opencollective.com/typescript-eslint"
|
|
102
102
|
},
|
|
103
|
-
"gitHead": "
|
|
103
|
+
"gitHead": "606a52cefcecd594df6edc359bff291b835169f2"
|
|
104
104
|
}
|