@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: 'Promises must be awaited, end with a call to .catch, or end with a call to .then with a rejection handler.',
45
+ floating: messageBase,
42
46
  floatingFixAwait: 'Add await operator.',
43
- floatingVoid: 'Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler' +
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 Invocated Function Expressions).',
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
- if (isUnhandledPromise(checker, expression)) {
88
+ const { isUnhandled, nonFunctionHandler } = isUnhandledPromise(checker, expression);
89
+ if (isUnhandled) {
84
90
  if (options.ignoreVoid) {
85
91
  context.report({
86
92
  node,
87
- messageId: 'floatingVoid',
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: 'floating',
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.some(item => isUnhandledPromise(checker, item));
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
- return (!isPromiseCatchCallWithHandler(node) &&
176
- !isPromiseThenCallWithRejectionHandler(node) &&
177
- !isPromiseFinallyCallWithHandler(node));
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
- return (isUnhandledPromise(checker, node.alternate) ||
183
- isUnhandledPromise(checker, node.consequent));
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
- return (isUnhandledPromise(checker, node.left) ||
195
- isUnhandledPromise(checker, node.right));
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 isPromiseCatchCallWithHandler(expression) {
242
- return (expression.callee.type === utils_1.AST_NODE_TYPES.MemberExpression &&
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 isPromiseThenCallWithRejectionHandler(expression) {
248
- return (expression.callee.type === utils_1.AST_NODE_TYPES.MemberExpression &&
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":"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"}
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;AAiB7C,MAAM,WAAW,GACf,4GAA4G,CAAC;AAE/G,MAAM,eAAe,GACnB,wGAAwG;IACxG,+DAA+D,CAAC;AAElE,MAAM,uBAAuB,GAC3B,6DAA6D,CAAC;AAEhE,kBAAe,IAAI,CAAC,UAAU,CAAqB;IACjD,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EACT,6DAA6D;YAC/D,WAAW,EAAE,aAAa;YAC1B,oBAAoB,EAAE,IAAI;SAC3B;QACD,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE;YACR,QAAQ,EAAE,WAAW;YACrB,gBAAgB,EAAE,qBAAqB;YACvC,YAAY,EAAE,eAAe;YAC7B,eAAe,EAAE,8BAA8B;YAC/C,+BAA+B,EAC7B,WAAW,GAAG,GAAG,GAAG,uBAAuB;YAC7C,mCAAmC,EACjC,eAAe,GAAG,GAAG,GAAG,uBAAuB;SAClD;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,WAAW,EAAE,uCAAuC;wBACpD,IAAI,EAAE,SAAS;qBAChB;oBACD,UAAU,EAAE;wBACV,WAAW,EACT,2EAA2E;wBAC7E,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,IAAI,EAAE,SAAS;KAChB;IACD,cAAc,EAAE;QACd;YACE,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,KAAK;SAClB;KACF;IAED,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAElD,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,IAAI,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;oBAC3C,OAAO;iBACR;gBAED,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBAEjC,IAAI,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe,EAAE;oBACtD,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;iBACpC;gBAED,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAC5D,OAAO,EACP,UAAU,CACX,CAAC;gBAEF,IAAI,WAAW,EAAE;oBACf,IAAI,OAAO,CAAC,UAAU,EAAE;wBACtB,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI;4BACJ,SAAS,EAAE,kBAAkB;gCAC3B,CAAC,CAAC,qCAAqC;gCACvC,CAAC,CAAC,cAAc;4BAClB,OAAO,EAAE;gCACP;oCACE,SAAS,EAAE,iBAAiB;oCAC5B,GAAG,CAAC,KAAK;wCACP,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAC/C,IAAI,CAAC,UAAU,CAChB,CAAC;wCACF,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE;4CACvC,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;yCAC9C;6CAAM;4CACL,OAAO;gDACL,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;gDACtC,KAAK,CAAC,oBAAoB,CACxB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1C,GAAG,CACJ;6CACF,CAAC;yCACH;oCACH,CAAC;iCACF;6BACF;yBACF,CAAC,CAAC;qBACJ;yBAAM;wBACL,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI;4BACJ,SAAS,EAAE,kBAAkB;gCAC3B,CAAC,CAAC,iCAAiC;gCACnC,CAAC,CAAC,UAAU;4BACd,OAAO,EAAE;gCACP;oCACE,SAAS,EAAE,kBAAkB;oCAC7B,GAAG,CAAC,KAAK;wCACP,IACE,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe;4CAClD,UAAU,CAAC,QAAQ,KAAK,MAAM,EAC9B;4CACA,OAAO,KAAK,CAAC,gBAAgB,CAC3B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAC9C,OAAO,CACR,CAAC;yCACH;wCACD,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAC/C,IAAI,CAAC,UAAU,CAChB,CAAC;wCACF,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE;4CACvC,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;yCAC/C;6CAAM;4CACL,OAAO;gDACL,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC;gDACvC,KAAK,CAAC,oBAAoB,CACxB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1C,GAAG,CACJ;6CACF,CAAC;yCACH;oCACH,CAAC;iCACF;6BACF;yBACF,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;QAEF,SAAS,2BAA2B,CAAC,IAAa;YAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI;gBACzB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvE,OAAO,cAAc,GAAG,yBAAkB,CAAC,KAAK,CAAC;QACnD,CAAC;QAED,SAAS,WAAW,CAAC,IAAkC;YACrD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,cAAc,EAAE;gBAC1D,OAAO,KAAK,CAAC;aACd;YAED,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,cAAc;gBACtD,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;oBAC1B,sBAAc,CAAC,uBAAuB;oBACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,kBAAkB,CAAC,CACrE,CAAC;QACJ,CAAC;QAED,SAAS,uBAAuB,CAAC,gBAA+B;YAC9D,OAAO,CACL,QAAQ,CAAC,OAAO;iBACb,cAAc,EAAE;iBAChB,iBAAiB,CAChB,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CACrD;iBACA,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC;QACJ,CAAC;QAED,SAAS,kBAAkB,CACzB,OAAuB,EACvB,IAAmB;YAEnB,yEAAyE;YACzE,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,kBAAkB,EAAE;gBACnD,uEAAuE;gBACvE,yEAAyE;gBACzE,yBAAyB;gBACzB,OAAO,CACL,IAAI,CAAC,WAAW;qBACb,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAChE,CAAC;aACH;YAED,IACE,CAAC,OAAO,CAAC,UAAU;gBACnB,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe;gBAC5C,IAAI,CAAC,QAAQ,KAAK,MAAM,EACxB;gBACA,yEAAyE;gBACzE,4EAA4E;gBAC5E,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACnD;YAED,4EAA4E;YAC5E,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;gBACrE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;aAC/B;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,cAAc,EAAE;gBAC/C,sEAAsE;gBACtE,uCAAuC;gBAEvC,MAAM,qBAAqB,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;gBACrE,IAAI,qBAAqB,EAAE;oBACzB,IAAI,uBAAuB,CAAC,qBAAqB,CAAC,EAAE;wBAClD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;qBAC/B;yBAAM;wBACL,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;qBACxD;iBACF;gBAED,MAAM,oBAAoB,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;gBACnE,IAAI,oBAAoB,EAAE;oBACxB,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,EAAE;wBACjD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;qBAC/B;yBAAM;wBACL,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;qBACxD;iBACF;gBAED,IAAI,+BAA+B,CAAC,IAAI,CAAC,EAAE;oBACzC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;iBAC/B;gBAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC9B;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,qBAAqB,EAAE;gBAC7D,4EAA4E;gBAC5E,gCAAgC;gBAChC,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpE,IAAI,eAAe,CAAC,WAAW,EAAE;oBAC/B,OAAO,eAAe,CAAC;iBACxB;qBAAM;oBACL,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;iBACrD;aACF;iBAAM,IACL,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;gBAC7C,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;gBACvC,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,aAAa,EAC1C;gBACA,2EAA2E;gBAC3E,2EAA2E;gBAC3E,qDAAqD;gBACrD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC9B;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,iBAAiB,EAAE;gBACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1D,IAAI,UAAU,CAAC,WAAW,EAAE;oBAC1B,OAAO,UAAU,CAAC;iBACnB;qBAAM;oBACL,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChD;aACF;YAED,4EAA4E;YAC5E,8EAA8E;YAC9E,sBAAsB;YACtB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,0GAA0G;AAC1G,SAAS,aAAa,CAAC,OAAuB,EAAE,IAAa;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE;QACtE,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,SAAS;SACV;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,IACE,oBAAoB,CAClB,QAAQ,EACR,SAAS,CAAC,EAAE,CACV,SAAS,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;YAChC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YACvD,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAC1D,EACD;YACA,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAa,EACb,OAA6C;IAE7C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CACtB,OAAuB,EACvB,KAAgB,EAChB,IAAa;IAEb,MAAM,IAAI,GAAwB,OAAO,CAAC,eAAe,CACvD,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAC/C,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gCAAgC,CACvC,UAAmC;IAEnC,IACE,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;QAC1D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;QAC7D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO;QAC3C,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAChC;QACA,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAChC;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,UAAmC;IAEnC,IACE,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;QAC1D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;QAC7D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;QAC1C,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAChC;QACA,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAChC;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,UAAmC;IAEnC,OAAO,CACL,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;QAC1D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;QAC7D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;QAC7C,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CACjC,CAAC;AACJ,CAAC"}
@@ -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 Invocated function Expressions).
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.12+dc3e0ebc1",
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.12+dc3e0ebc1",
61
- "@typescript-eslint/type-utils": "6.0.1-alpha.12+dc3e0ebc1",
62
- "@typescript-eslint/utils": "6.0.1-alpha.12+dc3e0ebc1",
63
- "@typescript-eslint/visitor-keys": "6.0.1-alpha.12+dc3e0ebc1",
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.12+dc3e0ebc1",
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": "dc3e0ebc1518313d726d6c3f0c2b240f991f2aa2"
103
+ "gitHead": "606a52cefcecd594df6edc359bff291b835169f2"
104
104
  }