Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.1.0 to 8.2.0 in the eslint group #911

Merged
merged 1 commit into from
Aug 19, 2024

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Aug 19, 2024

Bumps the eslint group with 1 update: @typescript-eslint/eslint-plugin.

Updates @typescript-eslint/eslint-plugin from 8.1.0 to 8.2.0

Release notes

Sourced from @​typescript-eslint/eslint-plugin's releases.

v8.2.0

8.2.0 (2024-08-19)

🚀 Features

  • eslint-plugin: add suggestion to require-await to remove async keyword (#9718)
  • typescript-estree: special-case error for parserOptions.project and project references (#9686)

🩹 Fixes

  • eslint-plugin: [use-unknown-in-catch-callback-variable] flag second argument of .then (#9059)
  • eslint-plugin: [no-unnecessary-type-assertion] conflict with TS for variables used before assignment (#9209)
  • eslint-plugin: delete [] in message if ReadOnly is detected (#9513)
  • eslint-plugin: [no-redundant-type-constituents] differentiate a types-error any from a true any (#9555)
  • eslint-plugin: [no-unnecessary-type-parameters] check mapped constraint types if necessary (#9740)
  • eslint-plugin: [no-unsafe-enum-comparison] add logic to see through intersections (#9777)
  • typescript-estree: pass in tsconfigRootDir as cwd to getParsedConfigFile (#9804)

❤️ Thank You

You can read about our versioning strategy and releases on our website.

Changelog

Sourced from @​typescript-eslint/eslint-plugin's changelog.

8.2.0 (2024-08-19)

🚀 Features

  • eslint-plugin: add suggestion to require-await to remove async keyword

🩹 Fixes

  • eslint-plugin: [use-unknown-in-catch-callback-variable] flag second argument of .then

  • eslint-plugin: [no-unnecessary-type-assertion] conflict with TS for variables used before assignment

  • eslint-plugin: delete [] in message if ReadOnly is detected

  • eslint-plugin: [no-redundant-type-constituents] differentiate a types-error any from a true any

  • eslint-plugin: [no-unnecessary-type-parameters] check mapped constraint types if necessary

  • eslint-plugin: [no-unsafe-enum-comparison] add logic to see through intersections

❤️ Thank You

  • Abraham Guo
  • Dave
  • Jake Bailey
  • James
  • Josh Goldberg ✨
  • liuxingbaoyu
  • Yukihiro Hasegawa
  • Yutong Zhu

You can read about our versioning strategy and releases on our website.

Commits
  • 7440e14 chore(release): publish 8.2.0
  • db558d1 fix(eslint-plugin): [no-unsafe-enum-comparison] add logic to see through inte...
  • 3962885 chore: enable unicorn/prefer-string-replace-all (#9798)
  • da02f61 fix(eslint-plugin): [no-unnecessary-type-parameters] check mapped constraint ...
  • 478990f feat(eslint-plugin): add suggestion to require-await to remove async keyw...
  • 8087d17 fix(eslint-plugin): [no-redundant-type-constituents] differentiate a types-er...
  • 8e01254 fix(eslint-plugin): delete [] in message if ReadOnly<string[]> is detected (#...
  • 3ca8477 fix(eslint-plugin): [no-unnecessary-type-assertion] conflict with TS for vari...
  • 75a09a8 fix(eslint-plugin): [use-unknown-in-catch-callback-variable] flag second argu...
  • 382e87b chore: enable unicorn/prefer-node-protocol (#9742)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the eslint group with 1 update: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin).


Updates `@typescript-eslint/eslint-plugin` from 8.1.0 to 8.2.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.2.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Aug 19, 2024
@github-actions github-actions bot enabled auto-merge (squash) August 19, 2024 21:08
Copy link
Contributor

Diff between @typescript-eslint/eslint-plugin 8.1.0 and 8.2.0
diff --git a/dist/rules/prefer-optional-chain-utils/analyzeChain.js b/dist/rules/prefer-optional-chain-utils/analyzeChain.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/prefer-optional-chain-utils/analyzeChain.js
+++ b/dist/rules/prefer-optional-chain-utils/analyzeChain.js
@@ -278,5 +278,5 @@
             if (lastOperand.isYoda) {
                 const unaryOperator = lastOperand.node.right.type === utils_1.AST_NODE_TYPES.UnaryExpression
-                    ? lastOperand.node.right.operator + ' '
+                    ? `${lastOperand.node.right.operator} `
                     : '';
                 return {
@@ -286,5 +286,5 @@
             }
             const unaryOperator = lastOperand.node.left.type === utils_1.AST_NODE_TYPES.UnaryExpression
-                ? lastOperand.node.left.operator + ' '
+                ? `${lastOperand.node.left.operator} `
                 : '';
             return {
diff --git a/dist/rules/array-type.js b/dist/rules/array-type.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/array-type.js
+++ b/dist/rules/array-type.js
@@ -83,4 +83,5 @@
             errorStringArraySimple: "Array type using '{{className}}<{{type}}>' is forbidden for simple types. Use '{{readonlyPrefix}}{{type}}[]' instead.",
             errorStringGenericSimple: "Array type using '{{readonlyPrefix}}{{type}}[]' is forbidden for non-simple types. Use '{{className}}<{{type}}>' instead.",
+            errorStringArraySimpleReadonly: "Array type using '{{className}}<{{type}}>' is forbidden for simple types. Use '{{readonlyPrefix}}{{type}}' instead.",
         },
         schema: [
@@ -180,5 +181,7 @@
                         ? 'errorStringArrayReadonly'
                         : 'errorStringArray'
-                    : 'errorStringArraySimple';
+                    : isReadonlyArrayType && node.typeName.name !== 'ReadonlyArray'
+                        ? 'errorStringArraySimpleReadonly'
+                        : 'errorStringArraySimple';
                 if (!typeParams || typeParams.length === 0) {
                     // Create an 'any' array
diff --git a/dist/rules/consistent-generic-constructors.js b/dist/rules/consistent-generic-constructors.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/consistent-generic-constructors.js
+++ b/dist/rules/consistent-generic-constructors.js
@@ -74,5 +74,5 @@
                                 return [
                                     fixer.remove(typeArguments),
-                                    fixer.insertTextAfter(getIDToAttachAnnotation(), ': ' + typeAnnotation),
+                                    fixer.insertTextAfter(getIDToAttachAnnotation(), `: ${typeAnnotation}`),
                                 ];
                             },
diff --git a/dist/util/escapeRegExp.js b/dist/util/escapeRegExp.js
index v8.1.0..v8.2.0 100644
--- a/dist/util/escapeRegExp.js
+++ b/dist/util/escapeRegExp.js
@@ -10,5 +10,5 @@
 function escapeRegExp(string = '') {
     return string && reHasRegExpChar.test(string)
-        ? string.replace(reRegExpChar, '\\$&')
+        ? string.replaceAll(reRegExpChar, '\\$&')
         : string;
 }
diff --git a/dist/util/index.js b/dist/util/index.js
index v8.1.0..v8.2.0 100644
--- a/dist/util/index.js
+++ b/dist/util/index.js
@@ -29,6 +29,8 @@
 __exportStar(require("./isNodeEqual"), exports);
 __exportStar(require("./isNullLiteral"), exports);
+__exportStar(require("./isStartOfExpressionStatement"), exports);
 __exportStar(require("./isUndefinedIdentifier"), exports);
 __exportStar(require("./misc"), exports);
+__exportStar(require("./needsPrecedingSemiColon"), exports);
 __exportStar(require("./objectIterators"), exports);
 __exportStar(require("./scopeUtils"), exports);
diff --git a/dist/rules/init-declarations.js b/dist/rules/init-declarations.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/init-declarations.js
+++ b/dist/rules/init-declarations.js
@@ -19,5 +19,5 @@
     defaultOptions: ['always'],
     create(context, [mode]) {
-        // Make a custom context to adjust the the loc of reports where the base
+        // Make a custom context to adjust the loc of reports where the base
         // rule's behavior is a bit too aggressive with TS-specific syntax (namely,
         // type annotations).
diff --git a/dist/rules/member-ordering.js b/dist/rules/member-ordering.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/member-ordering.js
+++ b/dist/rules/member-ordering.js
@@ -507,5 +507,5 @@
     const lowestRank = order[lowest];
     const lowestRanks = Array.isArray(lowestRank) ? lowestRank : [lowestRank];
-    return lowestRanks.map(rank => rank.replace(/-/g, ' ')).join(', ');
+    return lowestRanks.map(rank => rank.replaceAll('-', ' ')).join(', ');
 }
 exports.default = (0, util_1.createRule)({
diff --git a/dist/rules/no-floating-promises.js b/dist/rules/no-floating-promises.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-floating-promises.js
+++ b/dist/rules/no-floating-promises.js
@@ -49,6 +49,6 @@
             floatingVoid: messageBaseVoid,
             floatingFixVoid: 'Add void operator to ignore.',
-            floatingUselessRejectionHandler: messageBase + ' ' + messageRejectionHandler,
-            floatingUselessRejectionHandlerVoid: messageBaseVoid + ' ' + messageRejectionHandler,
+            floatingUselessRejectionHandler: `${messageBase} ${messageRejectionHandler}`,
+            floatingUselessRejectionHandlerVoid: `${messageBaseVoid} ${messageRejectionHandler}`,
             floatingPromiseArray: messagePromiseArray,
             floatingPromiseArrayVoid: messagePromiseArrayVoid,
diff --git a/dist/rules/no-invalid-void-type.js b/dist/rules/no-invalid-void-type.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-invalid-void-type.js
+++ b/dist/rules/no-invalid-void-type.js
@@ -80,7 +80,7 @@
                 const fullyQualifiedName = context.sourceCode
                     .getText(node.parent.parent.typeName)
-                    .replace(/ /gu, '');
+                    .replaceAll(' ', '');
                 if (!allowInGenericTypeArguments
-                    .map(s => s.replace(/ /gu, ''))
+                    .map(s => s.replaceAll(' ', ''))
                     .includes(fullyQualifiedName)) {
                     context.report({
diff --git a/dist/rules/no-redundant-type-constituents.js b/dist/rules/no-redundant-type-constituents.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-redundant-type-constituents.js
+++ b/dist/rules/no-redundant-type-constituents.js
@@ -89,4 +89,7 @@
         return type.value.toString();
     }
+    if (tsutils.isIntrinsicErrorType(type) && type.aliasSymbol) {
+        return type.aliasSymbol.escapedName.toString();
+    }
     if ((0, util_1.isTypeAnyType)(type)) {
         return 'any';
@@ -171,4 +174,5 @@
             overridden: `'{{typeName}}' is overridden by other types in this {{container}} type.`,
             overrides: `'{{typeName}}' overrides all other types in this {{container}} type.`,
+            errorTypeOverrides: `'{{typeName}}' is an 'error' type that acts as 'any' and overrides all other types in this {{container}} type.`,
         },
         schema: [],
@@ -235,5 +239,7 @@
                                     typeName,
                                 },
-                                messageId,
+                                messageId: typeFlags === ts.TypeFlags.Any && typeName !== 'any'
+                                    ? 'errorTypeOverrides'
+                                    : messageId,
                                 node: typeNode,
                             });
@@ -336,5 +342,7 @@
                                     typeName,
                                 },
-                                messageId: 'overrides',
+                                messageId: typeFlags === ts.TypeFlags.Any && typeName !== 'any'
+                                    ? 'errorTypeOverrides'
+                                    : 'overrides',
                                 node: typeNode,
                             });
diff --git a/dist/rules/no-restricted-types.js b/dist/rules/no-restricted-types.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-restricted-types.js
+++ b/dist/rules/no-restricted-types.js
@@ -4,5 +4,5 @@
 const util_1 = require("../util");
 function removeSpaces(str) {
-    return str.replace(/\s/g, '');
+    return str.replaceAll(/\s/g, '');
 }
 function stringifyNode(node, sourceCode) {
diff --git a/dist/rules/no-unnecessary-template-expression.js b/dist/rules/no-unnecessary-template-expression.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-unnecessary-template-expression.js
+++ b/dist/rules/no-unnecessary-template-expression.js
@@ -32,5 +32,5 @@
 // '\\\\\\$' <- false
 function endsWithUnescapedDollarSign(str) {
-    return new RegExp(String(evenNumOfBackslashesRegExp.source) + '\\$$').test(str);
+    return new RegExp(`${String(evenNumOfBackslashesRegExp.source)}\\$$`).test(str);
 }
 exports.default = (0, util_1.createRule)({
@@ -134,5 +134,5 @@
                             : // The value may be one of number | bigint | boolean | RegExp | null.
                                 // In regular expressions, we escape every backslash
-                                String(expression.value).replace(/\\/g, '\\\\'))
+                                String(expression.value).replaceAll('\\', '\\\\'))
                             // The string or RegExp may contain ` or ${.
                             // We want both of these to be escaped in the final template expression.
@@ -148,5 +148,5 @@
                             // \${ -> \${
                             // \\${ -> \\\${
-                            .replace(new RegExp(String(evenNumOfBackslashesRegExp.source) + '(`|\\${)', 'g'), '\\$1');
+                            .replaceAll(new RegExp(`${String(evenNumOfBackslashesRegExp.source)}(\`|\\\${)`, 'g'), '\\$1');
                         // `...${'...$'}{...`
                         //           ^^^^
diff --git a/dist/rules/no-unnecessary-type-assertion.js b/dist/rules/no-unnecessary-type-assertion.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-unnecessary-type-assertion.js
+++ b/dist/rules/no-unnecessary-type-assertion.js
@@ -77,23 +77,50 @@
                 // ignore class properties as they are compile time guarded
                 // also ignore function arguments as they can't be used before defined
-                ts.isVariableDeclaration(declaration) &&
+                ts.isVariableDeclaration(declaration)) {
+                // For var declarations, we need to check whether the node
+                // is actually in a descendant of its declaration or not. If not,
+                // it may be used before defined.
+                // eg
+                // if (Math.random() < 0.5) {
+                //     var x: number  = 2;
+                // } else {
+                //     x!.toFixed();
+                // }
+                if (ts.isVariableDeclarationList(declaration.parent) &&
+                    // var
+                    declaration.parent.flags === ts.NodeFlags.None &&
+                    // If they are not in the same file it will not exist.
+                    // This situation must not occur using before defined.
+                    services.tsNodeToESTreeNodeMap.has(declaration)) {
+                    const declaratorNode = services.tsNodeToESTreeNodeMap.get(declaration);
+                    const scope = context.sourceCode.getScope(node);
+                    const declaratorScope = context.sourceCode.getScope(declaratorNode);
+                    let parentScope = declaratorScope;
+                    while ((parentScope = parentScope.upper)) {
+                        if (parentScope === scope) {
+                            return true;
+                        }
+                    }
+                }
+                if (
                 // is it `const x!: number`
                 declaration.initializer === undefined &&
-                declaration.exclamationToken === undefined &&
-                declaration.type !== undefined) {
-                // check if the defined variable type has changed since assignment
-                const declarationType = checker.getTypeFromTypeNode(declaration.type);
-                const type = (0, util_1.getConstrainedTypeAtLocation)(services, node);
-                if (declarationType === type &&
-                    // `declare`s are never narrowed, so never skip them
-                    !(ts.isVariableDeclarationList(declaration.parent) &&
-                        ts.isVariableStatement(declaration.parent.parent) &&
-                        tsutils.includesModifier((0, util_1.getModifiers)(declaration.parent.parent), ts.SyntaxKind.DeclareKeyword))) {
-                    // possibly used before assigned, so just skip it
-                    // better to false negative and skip it, than false positive and fix to compile erroring code
-                    //
-                    // no better way to figure this out right now
-                    // https://github.com/Microsoft/TypeScript/issues/31124
-                    return true;
+                    declaration.exclamationToken === undefined &&
+                    declaration.type !== undefined) {
+                    // check if the defined variable type has changed since assignment
+                    const declarationType = checker.getTypeFromTypeNode(declaration.type);
+                    const type = (0, util_1.getConstrainedTypeAtLocation)(services, node);
+                    if (declarationType === type &&
+                        // `declare`s are never narrowed, so never skip them
+                        !(ts.isVariableDeclarationList(declaration.parent) &&
+                            ts.isVariableStatement(declaration.parent.parent) &&
+                            tsutils.includesModifier((0, util_1.getModifiers)(declaration.parent.parent), ts.SyntaxKind.DeclareKeyword))) {
+                        // possibly used before assigned, so just skip it
+                        // better to false negative and skip it, than false positive and fix to compile erroring code
+                        //
+                        // no better way to figure this out right now
+                        // https://github.com/Microsoft/TypeScript/issues/31124
+                        return true;
+                    }
                 }
             }
diff --git a/dist/rules/no-unnecessary-type-constraint.js b/dist/rules/no-unnecessary-type-constraint.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-unnecessary-type-constraint.js
+++ b/dist/rules/no-unnecessary-type-constraint.js
@@ -24,6 +24,6 @@
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+const node_path_1 = require("node:path");
 const utils_1 = require("@typescript-eslint/utils");
-const path_1 = require("path");
 const ts = __importStar(require("typescript"));
 const util_1 = require("../util");
@@ -53,5 +53,5 @@
         ]);
         function checkRequiresGenericDeclarationDisambiguation(filename) {
-            const pathExt = (0, path_1.extname)(filename).toLocaleLowerCase();
+            const pathExt = (0, node_path_1.extname)(filename).toLocaleLowerCase();
             switch (pathExt) {
                 case ts.Extension.Cts:
diff --git a/dist/rules/no-unnecessary-type-parameters.js b/dist/rules/no-unnecessary-type-parameters.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-unnecessary-type-parameters.js
+++ b/dist/rules/no-unnecessary-type-parameters.js
@@ -247,5 +247,5 @@
                     // TS treats mapped types like `{[k in "a"]: T}` like `{a: T}`.
                     // They have properties, so we need to avoid double-counting.
-                    visitType(type.templateType, false);
+                    visitType(type.templateType ?? type.constraintType, false);
                 }
             }
diff --git a/dist/rules/no-unsafe-assignment.js b/dist/rules/no-unsafe-assignment.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-unsafe-assignment.js
+++ b/dist/rules/no-unsafe-assignment.js
@@ -232,6 +232,6 @@
             if (receiverType) {
                 return {
-                    sender: '`' + checker.typeToString(senderType) + '`',
-                    receiver: '`' + checker.typeToString(receiverType) + '`',
+                    sender: `\`${checker.typeToString(senderType)}\``,
+                    receiver: `\`${checker.typeToString(receiverType)}\``,
                 };
             }
diff --git a/dist/rules/no-unsafe-enum-comparison.js b/dist/rules/no-unsafe-enum-comparison.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/no-unsafe-enum-comparison.js
+++ b/dist/rules/no-unsafe-enum-comparison.js
@@ -31,11 +31,21 @@
  * @returns Whether the right type is an unsafe comparison against any left type.
  */
-function typeViolates(leftTypeParts, right) {
-    const leftValueKinds = new Set(leftTypeParts.map(getEnumValueType));
-    return ((leftValueKinds.has(ts.TypeFlags.Number) &&
-        tsutils.isTypeFlagSet(right, ts.TypeFlags.Number | ts.TypeFlags.NumberLike)) ||
-        (leftValueKinds.has(ts.TypeFlags.String) &&
-            tsutils.isTypeFlagSet(right, ts.TypeFlags.String | ts.TypeFlags.StringLike)));
+function typeViolates(leftTypeParts, rightType) {
+    const leftEnumValueTypes = new Set(leftTypeParts.map(getEnumValueType));
+    return ((leftEnumValueTypes.has(ts.TypeFlags.Number) && isNumberLike(rightType)) ||
+        (leftEnumValueTypes.has(ts.TypeFlags.String) && isStringLike(rightType)));
 }
+function isNumberLike(type) {
+    const typeParts = tsutils.intersectionTypeParts(type);
+    return typeParts.some(typePart => {
+        return tsutils.isTypeFlagSet(typePart, ts.TypeFlags.Number | ts.TypeFlags.NumberLike);
+    });
+}
+function isStringLike(type) {
+    const typeParts = tsutils.intersectionTypeParts(type);
+    return typeParts.some(typePart => {
+        return tsutils.isTypeFlagSet(typePart, ts.TypeFlags.String | ts.TypeFlags.StringLike);
+    });
+}
 /**
  * @returns What type a type's enum value is (number or string), if either.
@@ -90,4 +100,11 @@
                 }
             }
+            // We need to split the type into the union type parts in order to find
+            // valid enum comparisons like:
+            //
+            // ```ts
+            // declare const something: Fruit | Vegetable;
+            // something === Fruit.Apple;
+            // ```
             const leftTypeParts = tsutils.unionTypeParts(leftType);
             const rightTypeParts = tsutils.unionTypeParts(rightType);
diff --git a/dist/rules/prefer-function-type.js b/dist/rules/prefer-function-type.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/prefer-function-type.js
+++ b/dist/rules/prefer-function-type.js
@@ -112,11 +112,9 @@
                         if (node.type === utils_1.AST_NODE_TYPES.TSInterfaceDeclaration &&
                             isParentExported) {
-                            const commentsText = comments.reduce((text, comment) => {
-                                return (text +
-                                    (comment.type === utils_1.AST_TOKEN_TYPES.Line
-                                        ? `//${comment.value}`
-                                        : `/*${comment.value}*/`) +
-                                    '\n');
-                            }, '');
+                            const commentsText = comments
+                                .map(({ type, value }) => type === utils_1.AST_TOKEN_TYPES.Line
+                                ? `//${value}\n`
+                                : `/*${value}*/\n`)
+                                .join('');
                             // comments should move before export and not between export and interface declaration
                             fixes.push(fixer.insertTextBefore(node.parent, commentsText));
diff --git a/dist/rules/prefer-includes.js b/dist/rules/prefer-includes.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/prefer-includes.js
+++ b/dist/rules/prefer-includes.js
@@ -133,5 +133,5 @@
             };
             const replaceRegex = new RegExp(Object.values(EscapeMap).join('|'), 'g');
-            return str.replace(replaceRegex, char => EscapeMap[char]);
+            return str.replaceAll(replaceRegex, char => EscapeMap[char]);
         }
         function checkArrayIndexOf(node, allowFixing) {
diff --git a/dist/rules/require-await.js b/dist/rules/require-await.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/require-await.js
+++ b/dist/rules/require-await.js
@@ -40,5 +40,7 @@
         messages: {
             missingAwait: "{{name}} has no 'await' expression.",
+            removeAsync: "Remove 'async'.",
         },
+        hasSuggestions: true,
     },
     defaultOptions: [],
@@ -72,4 +74,70 @@
                 !isEmptyFunction(node) &&
                 !(scopeInfo.isGen && scopeInfo.isAsyncYield)) {
+                // If the function belongs to a method definition or
+                // property, then the function's range may not include the
+                // `async` keyword and we should look at the parent instead.
+                const nodeWithAsyncKeyword = (node.parent.type === utils_1.AST_NODE_TYPES.MethodDefinition &&
+                    node.parent.value === node) ||
+                    (node.parent.type === utils_1.AST_NODE_TYPES.Property &&
+                        node.parent.method &&
+                        node.parent.value === node)
+                    ? node.parent
+                    : node;
+                const asyncToken = (0, util_1.nullThrows)(context.sourceCode.getFirstToken(nodeWithAsyncKeyword, token => token.value === 'async'), 'The node is an async function, so it must have an "async" token.');
+                const asyncRange = [
+                    asyncToken.range[0],
+                    (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(asyncToken, {
+                        includeComments: true,
+                    }), 'There will always be a token after the "async" keyword.').range[0],
+                ];
+                // Removing the `async` keyword can cause parsing errors if the
+                // current statement is relying on automatic semicolon insertion.
+                // If ASI is currently being used, then we should replace the
+                // `async` keyword with a semicolon.
+                const nextToken = (0, util_1.nullThrows)(context.sourceCode.getTokenAfter(asyncToken), 'There will always be a token after the "async" keyword.');
+                const addSemiColon = nextToken.type === utils_1.AST_TOKEN_TYPES.Punctuator &&
+                    (nextToken.value === '[' || nextToken.value === '(') &&
+                    (nodeWithAsyncKeyword.type === utils_1.AST_NODE_TYPES.MethodDefinition ||
+                        (0, util_1.isStartOfExpressionStatement)(nodeWithAsyncKeyword)) &&
+                    (0, util_1.needsPrecedingSemicolon)(context.sourceCode, nodeWithAsyncKeyword);
+                const changes = [
+                    { range: asyncRange, replacement: addSemiColon ? ';' : undefined },
+                ];
+                // If there's a return type annotation and it's a
+                // `Promise<T>`, we can also change the return type
+                // annotation to just `T` as part of the suggestion.
+                // Alternatively, if the function is a generator and
+                // the return type annotation is `AsyncGenerator<T>`,
+                // then we can change it to `Generator<T>`.
+                if (node.returnType?.typeAnnotation.type ===
+                    utils_1.AST_NODE_TYPES.TSTypeReference) {
+                    if (scopeInfo.isGen) {
+                        if (hasTypeName(node.returnType.typeAnnotation, 'AsyncGenerator')) {
+                            changes.push({
+                                range: node.returnType.typeAnnotation.typeName.range,
+                                replacement: 'Generator',
+                            });
+                        }
+                    }
+                    else if (hasTypeName(node.returnType.typeAnnotation, 'Promise') &&
+                        node.returnType.typeAnnotation.typeArguments != null) {
+                        const openAngle = (0, util_1.nullThrows)(context.sourceCode.getFirstToken(node.returnType.typeAnnotation, token => token.type === utils_1.AST_TOKEN_TYPES.Punctuator &&
+                            token.value === '<'), 'There are type arguments, so the angle bracket will exist.');
+                        const closeAngle = (0, util_1.nullThrows)(context.sourceCode.getLastToken(node.returnType.typeAnnotation, token => token.type === utils_1.AST_TOKEN_TYPES.Punctuator &&
+                            token.value === '>'), 'There are type arguments, so the angle bracket will exist.');
+                        changes.push(
+                        // Remove the closing angled bracket.
+                        { range: closeAngle.range, replacement: undefined }, 
+                        // Remove the "Promise" identifier
+                        // and the opening angled bracket.
+                        {
+                            range: [
+                                node.returnType.typeAnnotation.typeName.range[0],
+                                openAngle.range[1],
+                            ],
+                            replacement: undefined,
+                        });
+                    }
+                }
                 context.report({
                     node,
@@ -79,4 +147,12 @@
                         name: (0, util_1.upperCaseFirst)((0, util_1.getFunctionNameWithKind)(node)),
                     },
+                    suggest: [
+                        {
+                            messageId: 'removeAsync',
+                            fix: (fixer) => changes.map(change => change.replacement !== undefined
+                                ? fixer.replaceTextRange(change.range, change.replacement)
+                                : fixer.removeRange(change.range)),
+                        },
+                    ],
                 });
             }
@@ -172,3 +248,7 @@
     return [type];
 }
+function hasTypeName(typeReference, typeName) {
+    return (typeReference.typeName.type === utils_1.AST_NODE_TYPES.Identifier &&
+        typeReference.typeName.name === typeName);
+}
 //# sourceMappingURL=require-await.js.map
\ No newline at end of file
diff --git a/dist/rules/enum-utils/shared.js b/dist/rules/enum-utils/shared.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/enum-utils/shared.js
+++ b/dist/rules/enum-utils/shared.js
@@ -98,5 +98,5 @@
                     return `${enumName}.${memberNameIdentifier.text}`;
                 case ts.SyntaxKind.StringLiteral: {
-                    const memberName = memberNameIdentifier.text.replace(/'/g, "\\'");
+                    const memberName = memberNameIdentifier.text.replaceAll("'", "\\'");
                     return `${enumName}['${memberName}']`;
                 }
diff --git a/dist/rules/naming-convention-utils/shared.js b/dist/rules/naming-convention-utils/shared.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/naming-convention-utils/shared.js
+++ b/dist/rules/naming-convention-utils/shared.js
@@ -6,5 +6,5 @@
 const enums_1 = require("./enums");
 function selectorTypeToMessageString(selectorType) {
-    const notCamelCase = selectorType.replace(/([A-Z])/g, ' $1');
+    const notCamelCase = selectorType.replaceAll(/([A-Z])/g, ' $1');
     return notCamelCase.charAt(0).toUpperCase() + notCamelCase.slice(1);
 }
diff --git a/dist/rules/unbound-method.js b/dist/rules/unbound-method.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/unbound-method.js
+++ b/dist/rules/unbound-method.js
@@ -101,7 +101,5 @@
         messages: {
             unbound: BASE_MESSAGE,
-            unboundWithoutThisAnnotation: BASE_MESSAGE +
-                '\n' +
-                'If your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.',
+            unboundWithoutThisAnnotation: `${BASE_MESSAGE}\nIf your function does not access \`this\`, you can annotate it with \`this: void\`, or consider using an arrow function instead.`,
         },
         schema: [
diff --git a/dist/rules/use-unknown-in-catch-callback-variable.js b/dist/rules/use-unknown-in-catch-callback-variable.js
index v8.1.0..v8.2.0 100644
--- a/dist/rules/use-unknown-in-catch-callback-variable.js
+++ b/dist/rules/use-unknown-in-catch-callback-variable.js
@@ -27,10 +27,18 @@
 const tsutils = __importStar(require("ts-api-utils"));
 const util_1 = require("../util");
-const useUnknownMessageBase = 'Prefer the safe `: unknown` for a catch callback variable.';
+const useUnknownMessageBase = 'Prefer the safe `: unknown` for a `{{method}}`{{append}} callback variable.';
+/**
+ * `x.memberName` => 'memberKey'
+ *
+ * `const mk = 'memberKey'; x[mk]` => 'memberKey'
+ *
+ * `const mk = 1234; x[mk]` => 1234
+ */
+const getStaticMemberAccessKey = ({ computed, property }, scope) => computed ? (0, util_1.getStaticValue)(property, scope) : { value: property.name };
 exports.default = (0, util_1.createRule)({
     name: 'use-unknown-in-catch-callback-variable',
     meta: {
         docs: {
-            description: 'Enforce typing arguments in `.catch()` callbacks as `unknown`',
+            description: 'Enforce typing arguments in Promise rejection callbacks as `unknown`',
             requiresTypeChecking: true,
             recommended: 'strict',
@@ -39,11 +47,8 @@
         messages: {
             useUnknown: useUnknownMessageBase,
-            useUnknownArrayDestructuringPattern: useUnknownMessageBase + ' The thrown error may not be iterable.',
-            useUnknownObjectDestructuringPattern: useUnknownMessageBase +
-                ' The thrown error may be nullable, or may not have the expected shape.',
-            useUnknownSpreadArgs: useUnknownMessageBase +
-                ' The argument list may contain a handler that does not use `unknown` for the catch callback variable.',
-            addUnknownTypeAnnotationSuggestion: 'Add an explicit `: unknown` type annotation to the catch variable.',
-            addUnknownRestTypeAnnotationSuggestion: 'Add an explicit `: [unknown]` type annotation to the catch rest variable.',
+            useUnknownArrayDestructuringPattern: `${useUnknownMessageBase} The thrown error may not be iterable.`,
+            useUnknownObjectDestructuringPattern: `${useUnknownMessageBase} The thrown error may be nullable, or may not have the expected shape.`,
+            addUnknownTypeAnnotationSuggestion: 'Add an explicit `: unknown` type annotation to the rejection callback variable.',
+            addUnknownRestTypeAnnotationSuggestion: 'Add an explicit `: [unknown]` type annotation to the rejection callback rest variable.',
             wrongTypeAnnotationSuggestion: 'Change existing type annotation to `: unknown`.',
             wrongRestTypeAnnotationSuggestion: 'Change existing type annotation to `: [unknown]`.',
@@ -55,15 +60,6 @@
     defaultOptions: [],
     create(context) {
-        const services = (0, util_1.getParserServices)(context);
-        const checker = services.program.getTypeChecker();
-        function isPromiseCatchAccess(node) {
-            if (!(node.type === utils_1.AST_NODE_TYPES.MemberExpression &&
-                isStaticMemberAccessOfValue(node, 'catch'))) {
-                return false;
-            }
-            const objectTsNode = services.esTreeNodeToTSNodeMap.get(node.object);
-            const tsNode = services.esTreeNodeToTSNodeMap.get(node);
-            return tsutils.isThenableType(checker, tsNode, checker.getTypeAtLocation(objectTsNode));
-        }
+        const { program, esTreeNodeToTSNodeMap } = (0, util_1.getParserServices)(context);
+        const checker = program.getTypeChecker();
         function isFlaggableHandlerType(type) {
             for (const unionPart of tsutils.unionTypeParts(type)) {
@@ -100,38 +96,9 @@
             return false;
         }
-        /**
-         * If passed an ordinary expression, this will check it as expected.
-         *
-         * If passed a spread element, it treats it as the union of unwrapped array/tuple type.
-         */
         function shouldFlagArgument(node) {
-            const argument = services.esTreeNodeToTSNodeMap.get(node);
+            const argument = esTreeNodeToTSNodeMap.get(node);
             const typeOfArgument = checker.getTypeAtLocation(argument);
             return isFlaggableHandlerType(typeOfArgument);
         }
-        function shouldFlagMultipleSpreadArgs(argumentsList) {
-            // One could try to be clever about unpacking fixed length tuples and stuff
-            // like that, but there's no need, since this is all invalid use of `.catch`
-            // anyway at the end of the day. Instead, we'll just check whether any of the
-            // possible args types would violate the rule on its own.
-            return argumentsList.some(argument => shouldFlagArgument(argument));
-        }
-        function shouldFlagSingleSpreadArg(node) {
-            const spreadArgs = services.esTreeNodeToTSNodeMap.get(node.argument);
-            const spreadArgsType = checker.getTypeAtLocation(spreadArgs);
-            if (checker.isArrayType(spreadArgsType)) {
-                const arrayType = checker.getTypeArguments(spreadArgsType)[0];
-                return isFlaggableHandlerType(arrayType);
-            }
-            if (checker.isTupleType(spreadArgsType)) {
-                const firstType = checker.getTypeArguments(spreadArgsType).at(0);
-                if (!firstType) {
-                    // empty spread args. Suspect code, but not a problem for this rule.
-                    return false;
-                }
-                return isFlaggableHandlerType(firstType);
-            }
-            return true;
-        }
         /**
          * Analyzes the syntax of the catch argument and makes a best effort to pinpoint
@@ -141,5 +108,5 @@
          * rule _is reporting_, so it is not guaranteed to be sound to call otherwise.
          */
-        function refineReportForNormalArgumentIfPossible(argument) {
+        function refineReportIfPossible(argument) {
             // Only know how to be helpful if a function literal has been provided.
             if (!(argument.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
@@ -227,37 +194,43 @@
         }
         return {
-            CallExpression(node) {
-                if (node.arguments.length === 0 || !isPromiseCatchAccess(node.callee)) {
+            CallExpression({ arguments: args, callee }) {
+                if (callee.type !== utils_1.AST_NODE_TYPES.MemberExpression) {
                     return;
                 }
-                const firstArgument = node.arguments[0];
-                // Deal with some special cases around spread element args.
-                // promise.catch(...handlers), promise.catch(...handlers, ...moreHandlers).
-                if (firstArgument.type === utils_1.AST_NODE_TYPES.SpreadElement) {
-                    if (node.arguments.length === 1) {
-                        if (shouldFlagSingleSpreadArg(firstArgument)) {
-                            context.report({
-                                node: firstArgument,
-                                messageId: 'useUnknown',
-                            });
-                        }
-                    }
-                    else if (shouldFlagMultipleSpreadArgs(node.arguments)) {
-                        context.report({
-                            node,
-                            messageId: 'useUnknownSpreadArgs',
-                        });
-                    }
+                const staticMemberAccessKey = getStaticMemberAccessKey(callee, context.sourceCode.getScope(callee));
+                if (!staticMemberAccessKey) {
                     return;
                 }
-                // First argument is an "ordinary" argument (i.e. not a spread argument)
+                const promiseMethodInfo = [
+                    { method: 'catch', append: '', argIndexToCheck: 0 },
+                    { method: 'then', append: ' rejection', argIndexToCheck: 1 },
+                ].find(({ method }) => staticMemberAccessKey.value === method);
+                if (!promiseMethodInfo) {
+                    return;
+                }
+                // Need to be enough args to check
+                const { argIndexToCheck, ...data } = promiseMethodInfo;
+                if (args.length < argIndexToCheck + 1) {
+                    return;
+                }
+                // Argument to check, and all arguments before it, must be "ordinary" arguments (i.e. no spread arguments)
                 // promise.catch(f), promise.catch(() => {}), promise.catch(<expression>, <<other-args>>)
-                if (shouldFlagArgument(firstArgument)) {
+                const argsToCheck = args.slice(0, argIndexToCheck + 1);
+                if (argsToCheck.some(({ type }) => type === utils_1.AST_NODE_TYPES.SpreadElement)) {
+                    return;
+                }
+                if (!tsutils.isThenableType(checker, esTreeNodeToTSNodeMap.get(callee), checker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(callee.object)))) {
+                    return;
+                }
+                // the `some` check above has already excluded `SpreadElement`, so we are safe to assert the same
+                const node = argsToCheck[argIndexToCheck];
+                if (shouldFlagArgument(node)) {
                     // We are now guaranteed to report, but we have a bit of work to do
                     // to determine exactly where, and whether we can fix it.
-                    const overrides = refineReportForNormalArgumentIfPossible(firstArgument);
+                    const overrides = refineReportIfPossible(node);
                     context.report({
-                        node: firstArgument,
+                        node,
                         messageId: 'useUnknown',
+                        data,
                         ...overrides,
                     });
@@ -267,17 +240,3 @@
     },
 });
-/**
- * Answers whether the member expression looks like
- * `x.memberName`, `x['memberName']`,
- * or even `const mn = 'memberName'; x[mn]` (or optional variants thereof).
- */
-function isStaticMemberAccessOfValue(memberExpression, value, scope) {
-    if (!memberExpression.computed) {
-        // x.memberName case.
-        return memberExpression.property.name === value;
-    }
-    // x['memberName'] cases.
-    const staticValueResult = (0, util_1.getStaticValue)(memberExpression.property, scope);
-    return staticValueResult != null && value === staticValueResult.value;
-}
 //# sourceMappingURL=use-unknown-in-catch-callback-variable.js.map
\ No newline at end of file
diff --git a/package.json b/package.json
index v8.1.0..v8.2.0 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
 {
   "name": "@typescript-eslint/eslint-plugin",
-  "version": "8.1.0",
+  "version": "8.2.0",
   "description": "TypeScript plugin for ESLint",
   "files": [
@@ -61,8 +61,8 @@
   "dependencies": {
     "@eslint-community/regexpp": "^4.10.0",
-    "@typescript-eslint/scope-manager": "8.1.0",
-    "@typescript-eslint/type-utils": "8.1.0",
-    "@typescript-eslint/utils": "8.1.0",
-    "@typescript-eslint/visitor-keys": "8.1.0",
+    "@typescript-eslint/scope-manager": "8.2.0",
+    "@typescript-eslint/type-utils": "8.2.0",
+    "@typescript-eslint/utils": "8.2.0",
+    "@typescript-eslint/visitor-keys": "8.2.0",
     "graphemer": "^1.4.0",
     "ignore": "^5.3.1",
@@ -75,6 +75,6 @@
     "@types/mdast": "^4.0.3",
     "@types/natural-compare": "*",
-    "@typescript-eslint/rule-schema-to-typescript-types": "8.1.0",
-    "@typescript-eslint/rule-tester": "8.1.0",
+    "@typescript-eslint/rule-schema-to-typescript-types": "8.2.0",
+    "@typescript-eslint/rule-tester": "8.2.0",
     "ajv": "^6.12.6",
     "cross-env": "^7.0.3",
diff --git a/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map b/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map
index v8.1.0..v8.2.0 100644
--- a/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map
+++ b/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"analyzeChain.js","sourceRoot":"","sources":["../../../src/rules/prefer-optional-chain-utils/analyzeChain.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"analyzeChain.js","sourceRoot":"","sources":["../../../src/rules/prefer-optional-chain-utils/analyzeChain.ts"],"names":[],"mappings":"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

(too long so truncated)

Size Files
2.4 MB → 2.5 MB (+18.6 KB 🟡) 528 → 532 (+4 🟡)
Command details
npm diff --diff=@typescript-eslint/eslint-plugin@8.1.0 --diff=@typescript-eslint/eslint-plugin@8.2.0 --diff-unified=2

See also the npm diff document.

Reported by ybiquitous/npm-diff-action@v1.6.0 (Node.js 22.6.0 and npm 10.8.2)

@github-actions github-actions bot merged commit 06eb9cd into main Aug 19, 2024
5 checks passed
@github-actions github-actions bot deleted the dependabot/npm_and_yarn/eslint-eaf2832cf3 branch August 19, 2024 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants