generated from actions/javascript-action
-
Notifications
You must be signed in to change notification settings - Fork 4
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
github-actions
merged 1 commit into
main
from
dependabot/npm_and_yarn/eslint-eaf2832cf3
Aug 19, 2024
Merged
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.1.0 to 8.2.0 in the eslint group #911
github-actions
merged 1 commit into
main
from
dependabot/npm_and_yarn/eslint-eaf2832cf3
Aug 19, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
bot
added
dependencies
Pull requests that update a dependency file
javascript
Pull requests that update Javascript code
labels
Aug 19, 2024
Diff between @typescript-eslint/eslint-plugin 8.1.0 and 8.2.0diff --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)
Command detailsnpm diff --diff=@typescript-eslint/eslint-plugin@8.1.0 --diff=@typescript-eslint/eslint-plugin@8.2.0 --diff-unified=2 See also the Reported by ybiquitous/npm-diff-action@v1.6.0 (Node.js 22.6.0 and npm 10.8.2) |
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
0 participants
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bumps the eslint group with 1 update: @typescript-eslint/eslint-plugin.
Updates
@typescript-eslint/eslint-plugin
from 8.1.0 to 8.2.0Release notes
Sourced from
@typescript-eslint/eslint-plugin
's releases.Changelog
Sourced from
@typescript-eslint/eslint-plugin
's changelog.Commits
7440e14
chore(release): publish 8.2.0db558d1
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 torequire-await
to removeasync
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: enableunicorn/prefer-node-protocol
(#9742)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