-
Notifications
You must be signed in to change notification settings - Fork 0
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
feat(typescript): add @typescript-eslint/class-methods-use-this
rule
#1245
Merged
ybiquitous
merged 3 commits into
main
from
dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0
Sep 1, 2023
Merged
feat(typescript): add @typescript-eslint/class-methods-use-this
rule
#1245
ybiquitous
merged 3 commits into
main
from
dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0
Sep 1, 2023
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
dependabot
bot
added
dependencies
Pull requests that update a dependency file
javascript
Pull requests that update Javascript code
labels
Sep 1, 2023
Diff between @typescript-eslint/eslint-plugin 6.1.0 and 6.5.0diff --git a/dist/configs/all.js b/dist/configs/all.js
index v6.1.0..v6.5.0 100644
--- a/dist/configs/all.js
+++ b/dist/configs/all.js
@@ -20,4 +20,6 @@
'@typescript-eslint/brace-style': 'error',
'@typescript-eslint/class-literal-property-style': 'error',
+ 'class-methods-use-this': 'off',
+ '@typescript-eslint/class-methods-use-this': 'error',
'comma-dangle': 'off',
'@typescript-eslint/comma-dangle': 'error',
diff --git a/dist/rules/prefer-optional-chain-utils/analyzeChain.js b/dist/rules/prefer-optional-chain-utils/analyzeChain.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-optional-chain-utils/analyzeChain.js
+++ b/dist/rules/prefer-optional-chain-utils/analyzeChain.js
@@ -252,13 +252,11 @@
};
}
- else {
- const unaryOperator = lastOperand.node.left.type === utils_1.AST_NODE_TYPES.UnaryExpression
- ? lastOperand.node.left.operator + ' '
- : '';
- return {
- left: unaryOperator + newCode,
- right: sourceCode.getText(lastOperand.node.right),
- };
- }
+ const unaryOperator = lastOperand.node.left.type === utils_1.AST_NODE_TYPES.UnaryExpression
+ ? lastOperand.node.left.operator + ' '
+ : '';
+ return {
+ left: unaryOperator + newCode,
+ right: sourceCode.getText(lastOperand.node.right),
+ };
})();
newCode = `${left} ${operator} ${right}`;
diff --git a/dist/rules/consistent-type-assertions.js b/dist/rules/consistent-type-assertions.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/consistent-type-assertions.js
+++ b/dist/rules/consistent-type-assertions.js
@@ -25,5 +25,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@typescript-eslint/utils");
+const ts = __importStar(require("typescript"));
const util = __importStar(require("../util"));
+const getWrappedCode_1 = require("../util/getWrappedCode");
exports.default = util.createRule({
name: 'consistent-type-assertions',
@@ -85,4 +87,5 @@
create(context, [options]) {
const sourceCode = context.getSourceCode();
+ const parserServices = util.getParserServices(context, true);
function isConst(node) {
if (node.type !== utils_1.AST_NODE_TYPES.TSTypeReference) {
@@ -117,8 +120,24 @@
: {},
fix: messageId === 'as'
- ? (fixer) => [
- fixer.replaceText(node, getTextWithParentheses(node.expression)),
- fixer.insertTextAfter(node, ` as ${getTextWithParentheses(node.typeAnnotation)}`),
- ]
+ ? (fixer) => {
+ const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
+ /**
+ * AsExpression has lower precedence than TypeAssertionExpression,
+ * so we don't need to wrap expression and typeAnnotation in parens.
+ */
+ const expressionCode = sourceCode.getText(node.expression);
+ const typeAnnotationCode = sourceCode.getText(node.typeAnnotation);
+ const asPrecedence = util.getOperatorPrecedence(ts.SyntaxKind.AsExpression, ts.SyntaxKind.Unknown);
+ const parentPrecedence = util.getOperatorPrecedence(tsNode.parent.kind, ts.isBinaryExpression(tsNode.parent)
+ ? tsNode.parent.operatorToken.kind
+ : ts.SyntaxKind.Unknown, ts.isNewExpression(tsNode.parent)
+ ? tsNode.parent.arguments != null &&
+ tsNode.parent.arguments.length > 0
+ : undefined);
+ const text = `${expressionCode} as ${typeAnnotationCode}`;
+ return fixer.replaceText(node, util.isParenthesized(node, sourceCode)
+ ? text
+ : (0, getWrappedCode_1.getWrappedCode)(text, asPrecedence, parentPrecedence));
+ }
: undefined,
});
diff --git a/dist/rules/consistent-type-imports.js b/dist/rules/consistent-type-imports.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/consistent-type-imports.js
+++ b/dist/rules/consistent-type-imports.js
@@ -83,12 +83,12 @@
const source = node.source.value;
// sourceImports is the object containing all the specifics for a particular import source, type or value
- const sourceImports = sourceImportsMap[source] ??
- (sourceImportsMap[source] = {
- source,
- reportValueImports: [],
- typeOnlyNamedImport: null,
- valueOnlyNamedImport: null,
- valueImport: null, // if only value imports
- });
+ sourceImportsMap[source] ??= {
+ source,
+ reportValueImports: [],
+ typeOnlyNamedImport: null,
+ valueOnlyNamedImport: null,
+ valueImport: null, // if only value imports
+ };
+ const sourceImports = sourceImportsMap[source];
if (node.importKind === 'type') {
if (!sourceImports.typeOnlyNamedImport &&
@@ -232,25 +232,19 @@
};
}
- else {
- return {
- messageId: 'aImportIsOnlyTypes',
- data: { typeImports },
- };
- }
+ return {
+ messageId: 'aImportIsOnlyTypes',
+ data: { typeImports },
+ };
}
- else {
- if (isTypeImport) {
- return {
- messageId: 'someImportsInDecoMeta',
- data: { typeImports }, // typeImports are all the value specifiers that are in the type position
- };
- }
- else {
- return {
- messageId: 'someImportsAreOnlyTypes',
- data: { typeImports }, // typeImports are all the type specifiers in the value position
- };
- }
+ if (isTypeImport) {
+ return {
+ messageId: 'someImportsInDecoMeta',
+ data: { typeImports }, // typeImports are all the value specifiers that are in the type position
+ };
}
+ return {
+ messageId: 'someImportsAreOnlyTypes',
+ data: { typeImports }, // typeImports are all the type specifiers in the value position
+ };
})();
context.report({
diff --git a/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js b/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js
+++ b/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js
@@ -95,11 +95,9 @@
};
}
- else {
- return {
- comparedExpression: operand.right,
- comparedValue: getComparisonValueType(operand.left),
- isYoda: true,
- };
- }
+ return {
+ comparedExpression: operand.right,
+ comparedValue: getComparisonValueType(operand.left),
+ isYoda: true,
+ };
})();
if (comparedValue === "UndefinedStringLiteral" /* ComparisonValueType.UndefinedStringLiteral */) {
diff --git a/dist/util/getFunctionHeadLoc.js b/dist/util/getFunctionHeadLoc.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/getFunctionHeadLoc.js
+++ b/dist/util/getFunctionHeadLoc.js
@@ -1,51 +1,161 @@
"use strict";
+// adapted from https://github.com/eslint/eslint/blob/5bdaae205c3a0089ea338b382df59e21d5b06436/lib/rules/utils/ast-utils.js#L1668-L1787
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFunctionHeadLoc = void 0;
const utils_1 = require("@typescript-eslint/utils");
+const astUtils_1 = require("./astUtils");
/**
- * Creates a report location for the given function.
- * The location only encompasses the "start" of the function, and not the body
+ * Gets the `(` token of the given function node.
+ * @param node The function node to get.
+ * @param sourceCode The source code object to get tokens.
+ * @returns `(` token.
+ */
+function getOpeningParenOfParams(node, sourceCode) {
+ // If the node is an arrow function and doesn't have parens, this returns the identifier of the first param.
+ if (node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
+ node.params.length === 1) {
+ const argToken = utils_1.ESLintUtils.nullThrows(sourceCode.getFirstToken(node.params[0]), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('parameter', 'arrow function'));
+ const maybeParenToken = sourceCode.getTokenBefore(argToken);
+ return maybeParenToken && (0, astUtils_1.isOpeningParenToken)(maybeParenToken)
+ ? maybeParenToken
+ : argToken;
+ }
+ // Otherwise, returns paren.
+ return node.id != null
+ ? utils_1.ESLintUtils.nullThrows(sourceCode.getTokenAfter(node.id, astUtils_1.isOpeningParenToken), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('id', 'function'))
+ : utils_1.ESLintUtils.nullThrows(sourceCode.getFirstToken(node, astUtils_1.isOpeningParenToken), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('opening parenthesis', 'function'));
+}
+/**
+ * Gets the location of the given function node for reporting.
*
- * eg.
- *
- * ```
- * function foo(args) {}
- * ^^^^^^^^^^^^^^^^^^
- *
- * get y(args) {}
- * ^^^^^^^^^^^
- *
- * const x = (args) => {}
- * ^^^^^^^^^
- * ```
+ * - `function foo() {}`
+ * ^^^^^^^^^^^^
+ * - `(function foo() {})`
+ * ^^^^^^^^^^^^
+ * - `(function() {})`
+ * ^^^^^^^^
+ * - `function* foo() {}`
+ * ^^^^^^^^^^^^^
+ * - `(function* foo() {})`
+ * ^^^^^^^^^^^^^
+ * - `(function*() {})`
+ * ^^^^^^^^^
+ * - `() => {}`
+ * ^^
+ * - `async () => {}`
+ * ^^
+ * - `({ foo: function foo() {} })`
+ * ^^^^^^^^^^^^^^^^^
+ * - `({ foo: function() {} })`
+ * ^^^^^^^^^^^^^
+ * - `({ ['foo']: function() {} })`
+ * ^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: function() {} })`
+ * ^^^^^^^^^^^^^^^
+ * - `({ foo() {} })`
+ * ^^^
+ * - `({ foo: function* foo() {} })`
+ * ^^^^^^^^^^^^^^^^^^
+ * - `({ foo: function*() {} })`
+ * ^^^^^^^^^^^^^^
+ * - `({ ['foo']: function*() {} })`
+ * ^^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: function*() {} })`
+ * ^^^^^^^^^^^^^^^^
+ * - `({ *foo() {} })`
+ * ^^^^
+ * - `({ foo: async function foo() {} })`
+ * ^^^^^^^^^^^^^^^^^^^^^^^
+ * - `({ foo: async function() {} })`
+ * ^^^^^^^^^^^^^^^^^^^
+ * - `({ ['foo']: async function() {} })`
+ * ^^^^^^^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: async function() {} })`
+ * ^^^^^^^^^^^^^^^^^^^^^
+ * - `({ async foo() {} })`
+ * ^^^^^^^^^
+ * - `({ get foo() {} })`
+ * ^^^^^^^
+ * - `({ set foo(a) {} })`
+ * ^^^^^^^
+ * - `class A { constructor() {} }`
+ * ^^^^^^^^^^^
+ * - `class A { foo() {} }`
+ * ^^^
+ * - `class A { *foo() {} }`
+ * ^^^^
+ * - `class A { async foo() {} }`
+ * ^^^^^^^^^
+ * - `class A { ['foo']() {} }`
+ * ^^^^^^^
+ * - `class A { *['foo']() {} }`
+ * ^^^^^^^^
+ * - `class A { async ['foo']() {} }`
+ * ^^^^^^^^^^^^^
+ * - `class A { [foo]() {} }`
+ * ^^^^^
+ * - `class A { *[foo]() {} }`
+ * ^^^^^^
+ * - `class A { async [foo]() {} }`
+ * ^^^^^^^^^^^
+ * - `class A { get foo() {} }`
+ * ^^^^^^^
+ * - `class A { set foo(a) {} }`
+ * ^^^^^^^
+ * - `class A { static foo() {} }`
+ * ^^^^^^^^^^
+ * - `class A { static *foo() {} }`
+ * ^^^^^^^^^^^
+ * - `class A { static async foo() {} }`
+ * ^^^^^^^^^^^^^^^^
+ * - `class A { static get foo() {} }`
+ * ^^^^^^^^^^^^^^
+ * - `class A { static set foo(a) {} }`
+ * ^^^^^^^^^^^^^^
+ * - `class A { foo = function() {} }`
+ * ^^^^^^^^^^^^^^
+ * - `class A { static foo = function() {} }`
+ * ^^^^^^^^^^^^^^^^^^^^^
+ * - `class A { foo = (a, b) => {} }`
+ * ^^^^^^
+ * @param node The function node to get.
+ * @param sourceCode The source code object to get tokens.
+ * @returns The location of the function node for reporting.
*/
function getFunctionHeadLoc(node, sourceCode) {
- function getLocStart() {
- if (node.parent.type === utils_1.AST_NODE_TYPES.MethodDefinition) {
- // return the start location for class method
- if (node.parent.decorators && node.parent.decorators.length > 0) {
- // exclude decorators
- return sourceCode.getTokenAfter(node.parent.decorators[node.parent.decorators.length - 1]).loc.start;
- }
- return node.parent.loc.start;
+ const parent = node.parent;
+ let start = null;
+ let end = null;
+ if (parent.type === utils_1.AST_NODE_TYPES.MethodDefinition ||
+ parent.type === utils_1.AST_NODE_TYPES.PropertyDefinition) {
+ // the decorator's range is included within the member
+ // however it's usually irrelevant to the member itself - so we don't want
+ // to highlight it ever.
+ if (parent.decorators.length > 0) {
+ const lastDecorator = parent.decorators[parent.decorators.length - 1];
+ const firstTokenAfterDecorator = utils_1.ESLintUtils.nullThrows(sourceCode.getTokenAfter(lastDecorator), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('modifier or member name', 'class member'));
+ start = firstTokenAfterDecorator.loc.start;
}
- if (node.parent.type === utils_1.AST_NODE_TYPES.Property && node.parent.method) {
- // return the start location for object method shorthand
- return node.parent.loc.start;
+ else {
+ start = parent.loc.start;
}
- // return the start location for a regular function
- return node.loc.start;
+ end = getOpeningParenOfParams(node, sourceCode).loc.start;
}
- function getLocEnd() {
- if (node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression) {
- // find the end location for arrow function expression
- return sourceCode.getTokenBefore(node.body, token => token.type === utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '=>').loc.end;
- }
- // return the end location for a regular function
- return sourceCode.getTokenBefore(node.body).loc.end;
+ else if (parent.type === utils_1.AST_NODE_TYPES.Property) {
+ start = parent.loc.start;
+ end = getOpeningParenOfParams(node, sourceCode).loc.start;
}
+ else if (node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression) {
+ const arrowToken = utils_1.ESLintUtils.nullThrows(sourceCode.getTokenBefore(node.body, astUtils_1.isArrowToken), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('arrow token', 'arrow function'));
+ start = arrowToken.loc.start;
+ end = arrowToken.loc.end;
+ }
+ else {
+ start = node.loc.start;
+ end = getOpeningParenOfParams(node, sourceCode).loc.start;
+ }
return {
- start: getLocStart(),
- end: getLocEnd(),
+ start: Object.assign({}, start),
+ end: Object.assign({}, end),
};
}
diff --git a/dist/util/getOperatorPrecedence.js b/dist/util/getOperatorPrecedence.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/getOperatorPrecedence.js
+++ b/dist/util/getOperatorPrecedence.js
@@ -313,4 +313,5 @@
return OperatorPrecedence.Member;
case typescript_1.SyntaxKind.AsExpression:
+ case typescript_1.SyntaxKind.SatisfiesExpression:
return OperatorPrecedence.Relational;
case typescript_1.SyntaxKind.ThisKeyword:
diff --git a/dist/util/getWrappingFixer.js b/dist/util/getWrappingFixer.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/getWrappingFixer.js
+++ b/dist/util/getWrappingFixer.js
@@ -13,8 +13,11 @@
const innerCodes = innerNodes.map(innerNode => {
let code = sourceCode.getText(innerNode);
- // check the inner expression's precedence
- if (!isStrongPrecedenceNode(innerNode)) {
- // the code we are adding might have stronger precedence than our wrapped node
- // let's wrap our node in parens in case it has a weaker precedence than the code we are wrapping it in
+ /**
+ * Wrap our node in parens to prevent the following cases:
+ * - It has a weaker precedence than the code we are wrapping it in
+ * - It's gotten mistaken as block statement instead of object expression
+ */
+ if (!isStrongPrecedenceNode(innerNode) ||
+ isObjectExpressionInOneLineReturn(node, innerNode)) {
code = `(${code})`;
}
@@ -45,4 +48,6 @@
return (innerNode.type === utils_1.AST_NODE_TYPES.Literal ||
innerNode.type === utils_1.AST_NODE_TYPES.Identifier ||
+ innerNode.type === utils_1.AST_NODE_TYPES.TSTypeReference ||
+ innerNode.type === utils_1.AST_NODE_TYPES.TSTypeOperator ||
innerNode.type === utils_1.AST_NODE_TYPES.ArrayExpression ||
innerNode.type === utils_1.AST_NODE_TYPES.ObjectExpression ||
@@ -50,5 +55,6 @@
innerNode.type === utils_1.AST_NODE_TYPES.CallExpression ||
innerNode.type === utils_1.AST_NODE_TYPES.NewExpression ||
- innerNode.type === utils_1.AST_NODE_TYPES.TaggedTemplateExpression);
+ innerNode.type === utils_1.AST_NODE_TYPES.TaggedTemplateExpression ||
+ innerNode.type === utils_1.AST_NODE_TYPES.TSInstantiationExpression);
}
exports.isStrongPrecedenceNode = isStrongPrecedenceNode;
@@ -139,3 +145,11 @@
return false;
}
+/**
+ * Checks if a node's parent is arrow function expression and a inner node is object expression
+ */
+function isObjectExpressionInOneLineReturn(node, innerNode) {
+ return (node.parent?.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
+ node.parent.body === node &&
+ innerNode.type === utils_1.AST_NODE_TYPES.ObjectExpression);
+}
//# sourceMappingURL=getWrappingFixer.js.map
\ No newline at end of file
diff --git a/dist/rules/indent.js b/dist/rules/indent.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/indent.js
+++ b/dist/rules/indent.js
@@ -163,19 +163,17 @@
};
}
- else {
- return {
- type,
- accessibility: undefined,
- declare: false,
- decorators: [],
- definite: false,
- optional: false,
- override: false,
- readonly: false,
- static: false,
- typeAnnotation: undefined,
- ...base,
- };
- }
+ return {
+ type,
+ accessibility: undefined,
+ declare: false,
+ decorators: [],
+ definite: false,
+ optional: false,
+ override: false,
+ readonly: false,
+ static: false,
+ typeAnnotation: undefined,
+ ...base,
+ };
}
return Object.assign({}, rules, {
diff --git a/dist/rules/index.js b/dist/rules/index.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/index.js
+++ b/dist/rules/index.js
@@ -13,4 +13,5 @@
const brace_style_1 = __importDefault(require("./brace-style"));
const class_literal_property_style_1 = __importDefault(require("./class-literal-property-style"));
+const class_methods_use_this_1 = __importDefault(require("./class-methods-use-this"));
const comma_dangle_1 = __importDefault(require("./comma-dangle"));
const comma_spacing_1 = __importDefault(require("./comma-spacing"));
@@ -146,4 +147,5 @@
'brace-style': brace_style_1.default,
'class-literal-property-style': class_literal_property_style_1.default,
+ 'class-methods-use-this': class_methods_use_this_1.default,
'comma-dangle': comma_dangle_1.default,
'comma-spacing': comma_spacing_1.default,
diff --git a/dist/util/index.js b/dist/util/index.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/index.js
+++ b/dist/util/index.js
@@ -22,4 +22,5 @@
__exportStar(require("./getFunctionHeadLoc"), exports);
__exportStar(require("./getOperatorPrecedence"), exports);
+__exportStar(require("./getStaticStringValue"), exports);
__exportStar(require("./getStringLength"), exports);
__exportStar(require("./getThisExpression"), exports);
diff --git a/dist/rules/key-spacing.js b/dist/rules/key-spacing.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/key-spacing.js
+++ b/dist/rules/key-spacing.js
@@ -117,7 +117,5 @@
]);
}
- else {
- return fixer.insertTextBefore(typeAnnotation, ' '.repeat(-difference));
- }
+ return fixer.insertTextBefore(typeAnnotation, ' '.repeat(-difference));
},
data: {
@@ -144,7 +142,5 @@
]);
}
- else {
- return fixer.insertTextBefore(typeAnnotation.typeAnnotation, ' '.repeat(-difference));
- }
+ return fixer.insertTextBefore(typeAnnotation.typeAnnotation, ' '.repeat(-difference));
},
data: {
@@ -251,7 +247,5 @@
]);
}
- else {
- return fixer.insertTextBefore(toCheck, ' '.repeat(-difference));
- }
+ return fixer.insertTextBefore(toCheck, ' '.repeat(-difference));
},
data: {
diff --git a/dist/rules/member-ordering.js b/dist/rules/member-ordering.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/member-ordering.js
+++ b/dist/rules/member-ordering.js
@@ -616,4 +616,7 @@
}
function naturalOutOfOrder(name, previousName, order) {
+ if (name === previousName) {
+ return false;
+ }
switch (order) {
case 'alphabetically':
diff --git a/dist/util/misc.js b/dist/util/misc.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/misc.js
+++ b/dist/util/misc.js
@@ -130,10 +130,8 @@
};
}
- else {
- return {
- type: MemberNameType.Normal,
- name,
- };
- }
+ return {
+ type: MemberNameType.Normal,
+ name,
+ };
}
return {
diff --git a/dist/rules/no-extra-parens.js b/dist/rules/no-extra-parens.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-extra-parens.js
+++ b/dist/rules/no-extra-parens.js
@@ -45,4 +45,5 @@
defaultOptions: ['all'],
create(context) {
+ const sourceCode = context.getSourceCode();
const rules = baseRule.create(context);
function binaryExp(node) {
@@ -87,6 +88,7 @@
}
if (node.arguments.length === 1 &&
- node.typeArguments?.params.some(param => param.type === utils_1.AST_NODE_TYPES.TSImportType ||
- param.type === utils_1.AST_NODE_TYPES.TSArrayType)) {
+ // is there any opening parenthesis in type arguments
+ sourceCode.getTokenAfter(node.callee, util.isOpeningParenToken) !==
+ sourceCode.getTokenBefore(node.arguments[0], util.isOpeningParenToken)) {
return rule({
...node,
diff --git a/dist/rules/no-floating-promises.js b/dist/rules/no-floating-promises.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-floating-promises.js
+++ b/dist/rules/no-floating-promises.js
@@ -102,10 +102,8 @@
return fixer.insertTextBefore(node, 'void ');
}
- else {
- return [
- fixer.insertTextBefore(node, 'void ('),
- fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
- ];
- }
+ return [
+ fixer.insertTextBefore(node, 'void ('),
+ fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
+ ];
},
},
@@ -131,10 +129,8 @@
return fixer.insertTextBefore(node, 'await ');
}
- else {
- return [
- fixer.insertTextBefore(node, 'await ('),
- fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
- ];
- }
+ return [
+ fixer.insertTextBefore(node, 'await ('),
+ fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
+ ];
},
},
@@ -196,7 +192,5 @@
return { isUnhandled: false };
}
- else {
- return { isUnhandled: true, nonFunctionHandler: true };
- }
+ return { isUnhandled: true, nonFunctionHandler: true };
}
const thenRejectionHandler = getRejectionHandlerFromThenCall(node);
@@ -205,7 +199,5 @@
return { isUnhandled: false };
}
- else {
- return { isUnhandled: true, nonFunctionHandler: true };
- }
+ return { isUnhandled: true, nonFunctionHandler: true };
}
// `x.finally()` is transparent to resolution of the promise, so check `x`.
@@ -225,7 +217,5 @@
return alternateResult;
}
- else {
- return isUnhandledPromise(checker, node.consequent);
- }
+ return isUnhandledPromise(checker, node.consequent);
}
else if (node.type === utils_1.AST_NODE_TYPES.MemberExpression ||
@@ -242,7 +232,5 @@
return leftResult;
}
- else {
- return isUnhandledPromise(checker, node.right);
- }
+ return isUnhandledPromise(checker, node.right);
}
// We conservatively return false for all other types of expressions because
@@ -297,7 +285,5 @@
return expression.arguments[0];
}
- else {
- return undefined;
- }
+ return undefined;
}
function getRejectionHandlerFromThenCall(expression) {
@@ -308,7 +294,5 @@
return expression.arguments[1];
}
- else {
- return undefined;
- }
+ return undefined;
}
function getObjectFromFinallyCall(expression) {
diff --git a/dist/rules/no-inferrable-types.js b/dist/rules/no-inferrable-types.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-inferrable-types.js
+++ b/dist/rules/no-inferrable-types.js
@@ -180,8 +180,13 @@
return;
}
- node.params.filter(param => param.type === utils_1.AST_NODE_TYPES.AssignmentPattern &&
- param.left &&
- param.right).forEach(param => {
- reportInferrableType(param, param.left.typeAnnotation, param.right);
+ node.params.forEach(param => {
+ if (param.type === utils_1.AST_NODE_TYPES.TSParameterProperty) {
+ param = param.parameter;
+ }
+ if (param.type === utils_1.AST_NODE_TYPES.AssignmentPattern &&
+ param.left &&
+ param.right) {
+ reportInferrableType(param, param.left.typeAnnotation, param.right);
+ }
});
}
diff --git a/dist/rules/no-restricted-imports.js b/dist/rules/no-restricted-imports.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-restricted-imports.js
+++ b/dist/rules/no-restricted-imports.js
@@ -4,4 +4,5 @@
};
Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("@typescript-eslint/utils");
const ignore_1 = __importDefault(require("ignore"));
const util_1 = require("../util");
@@ -170,5 +171,7 @@
return {
ImportDeclaration(node) {
- if (node.importKind === 'type') {
+ if (node.importKind === 'type' ||
+ node.specifiers.every(specifier => specifier.type === utils_1.AST_NODE_TYPES.ImportSpecifier &&
+ specifier.importKind === 'type')) {
const importSource = node.source.value.trim();
if (!isAllowedTypeImportPath(importSource) &&
@@ -182,5 +185,6 @@
},
'ExportNamedDeclaration[source]'(node) {
- if (node.exportKind === 'type') {
+ if (node.exportKind === 'type' ||
+ node.specifiers.every(specifier => specifier.exportKind === 'type')) {
const importSource = node.source.value.trim();
if (!isAllowedTypeImportPath(importSource) &&
diff --git a/dist/rules/no-shadow.js b/dist/rules/no-shadow.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-shadow.js
+++ b/dist/rules/no-shadow.js
@@ -402,9 +402,7 @@
};
}
- else {
- return {
- global: true,
- };
- }
+ return {
+ global: true,
+ };
}
/**
diff --git a/dist/rules/no-unnecessary-condition.js b/dist/rules/no-unnecessary-condition.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-unnecessary-condition.js
+++ b/dist/rules/no-unnecessary-condition.js
@@ -35,9 +35,18 @@
const isPossiblyFalsy = (type) => tsutils
.unionTypeParts(type)
+ // Intersections like `string & {}` can also be possibly falsy,
+ // requiring us to look into the intersection.
+ .flatMap(type => tsutils.intersectionTypeParts(type))
// PossiblyFalsy flag includes literal values, so exclude ones that
// are definitely truthy
.filter(t => !isTruthyLiteral(t))
.some(type => (0, util_1.isTypeFlagSet)(type, ts.TypeFlags.PossiblyFalsy));
-const isPossiblyTruthy = (type) => tsutils.unionTypeParts(type).some(type => !tsutils.isFalsyType(type));
+const isPossiblyTruthy = (type) => tsutils
+ .unionTypeParts(type)
+ .map(type => tsutils.intersectionTypeParts(type))
+ .some(intersectionParts =>
+// It is possible to define intersections that are always falsy,
+// like `"" & { __brand: string }`.
+intersectionParts.every(type => !tsutils.isFalsyType(type)));
// Nullish utilities
const nullishFlag = ts.TypeFlags.Undefined | ts.TypeFlags.Null;
diff --git a/dist/rules/no-unsafe-enum-comparison.js b/dist/rules/no-unsafe-enum-comparison.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-unsafe-enum-comparison.js
+++ b/dist/rules/no-unsafe-enum-comparison.js
@@ -70,5 +70,5 @@
}
return {
- 'BinaryExpression[operator=/=|<|>/]'(node) {
+ 'BinaryExpression[operator=/^[<>!=]?={0,2}$/]'(node) {
const left = getTypeFromNode(node.left);
const right = getTypeFromNode(node.right);
diff --git a/dist/rules/non-nullable-type-assertion-style.js b/dist/rules/non-nullable-type-assertion-style.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/non-nullable-type-assertion-style.js
+++ b/dist/rules/non-nullable-type-assertion-style.js
@@ -67,7 +67,5 @@
return false;
}
- else {
- return ((type.flags & (ts.TypeFlags.Null | ts.TypeFlags.Undefined)) !== 0);
- }
+ return (type.flags & (ts.TypeFlags.Null | ts.TypeFlags.Undefined)) !== 0;
};
const sameTypeWithoutNullish = (assertedTypes, originalTypes) => {
@@ -108,7 +106,11 @@
}
if (sameTypeWithoutNullish(assertedTypes, originalTypes)) {
+ const expressionSourceCode = sourceCode.getText(node.expression);
+ const higherPrecedenceThanUnary = util.getOperatorPrecedence(services.esTreeNodeToTSNodeMap.get(node.expression).kind, ts.SyntaxKind.Unknown) > util.OperatorPrecedence.Unary;
context.report({
fix(fixer) {
- return fixer.replaceText(node, `${sourceCode.getText(node.expression)}!`);
+ return fixer.replaceText(node, higherPrecedenceThanUnary
+ ? `${expressionSourceCode}!`
+ : `(${expressionSourceCode})!`);
},
messageId: 'preferNonNullAssertion',
diff --git a/dist/rules/prefer-nullish-coalescing.js b/dist/rules/prefer-nullish-coalescing.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-nullish-coalescing.js
+++ b/dist/rules/prefer-nullish-coalescing.js
@@ -58,11 +58,19 @@
},
ignorePrimitives: {
- type: 'object',
- properties: {
- bigint: { type: 'boolean' },
- boolean: { type: 'boolean' },
- number: { type: 'boolean' },
- string: { type: 'boolean' },
- },
+ oneOf: [
+ {
+ type: 'object',
+ properties: {
+ bigint: { type: 'boolean' },
+ boolean: { type: 'boolean' },
+ number: { type: 'boolean' },
+ string: { type: 'boolean' },
+ },
+ },
+ {
+ type: 'boolean',
+ enum: [true],
+ },
+ ],
},
ignoreTernaryTests: {
@@ -244,12 +252,18 @@
}
const ignorableFlags = [
- ignorePrimitives.bigint && ts.TypeFlags.BigInt,
- ignorePrimitives.boolean && ts.TypeFlags.BooleanLiteral,
- ignorePrimitives.number && ts.TypeFlags.Number,
- ignorePrimitives.string && ts.TypeFlags.String,
+ (ignorePrimitives === true || ignorePrimitives.bigint) &&
+ ts.TypeFlags.BigInt,
+ (ignorePrimitives === true || ignorePrimitives.boolean) &&
+ ts.TypeFlags.BooleanLiteral,
+ (ignorePrimitives === true || ignorePrimitives.number) &&
+ ts.TypeFlags.Number,
+ (ignorePrimitives === true || ignorePrimitives.string) &&
+ ts.TypeFlags.String,
]
- .filter((flag) => flag !== undefined)
+ .filter((flag) => typeof flag === 'number')
.reduce((previous, flag) => previous | flag, 0);
- if (type.types.some(t => tsutils.isTypeFlagSet(t, ignorableFlags))) {
+ if (type.flags !== ts.TypeFlags.Null &&
+ type.flags !== ts.TypeFlags.Undefined &&
+ type.types.some(t => tsutils.isTypeFlagSet(t, ignorableFlags))) {
return;
}
diff --git a/dist/rules/prefer-string-starts-ends-with.js b/dist/rules/prefer-string-starts-ends-with.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-string-starts-ends-with.js
+++ b/dist/rules/prefer-string-starts-ends-with.js
@@ -162,9 +162,11 @@
* Parse a given `RegExp` pattern to that string if it's a static string.
* @param pattern The RegExp pattern text to parse.
- * @param uFlag The Unicode flag of the RegExp.
+ * @param unicode Whether the RegExp is unicode.
*/
- function parseRegExpText(pattern, uFlag) {
+ function parseRegExpText(pattern, unicode) {
// Parse it.
- const ast = regexpp.parsePattern(pattern, undefined, undefined, uFlag);
+ const ast = regexpp.parsePattern(pattern, undefined, undefined, {
+ unicode,
+ });
if (ast.alternatives.length !== 1) {
return null;
diff --git a/dist/rules/return-await.js b/dist/rules/return-await.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/return-await.js
+++ b/dist/rules/return-await.js
@@ -135,10 +135,8 @@
return fixer.insertTextBefore(node, 'await ');
}
- else {
- return [
- fixer.insertTextBefore(node, 'await ('),
- fixer.insertTextAfter(node, ')'),
- ];
- }
+ return [
+ fixer.insertTextBefore(node, 'await ('),
+ fixer.insertTextAfter(node, ')'),
+ ];
}
function isHigherPrecedenceThanAwait(node) {
diff --git a/dist/rules/strict-boolean-expressions.js b/dist/rules/strict-boolean-expressions.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/strict-boolean-expressions.js
+++ b/dist/rules/strict-boolean-expressions.js
@@ -621,10 +621,15 @@
node,
messageId: 'conditionErrorNullableObject',
- fix: util.getWrappingFixer({
- sourceCode,
- node: node.parent,
- innerNode: node,
- wrap: code => `${code} == null`,
- }),
+ suggest: [
+ {
+ messageId: 'conditionFixCompareNullish',
+ fix: util.getWrappingFixer({
+ sourceCode,
+ node: node.parent,
+ innerNode: node,
+ wrap: code => `${code} == null`,
+ }),
+ },
+ ],
});
}
@@ -634,9 +639,14 @@
node,
messageId: 'conditionErrorNullableObject',
- fix: util.getWrappingFixer({
- sourceCode,
- node,
- wrap: code => `${code} != null`,
- }),
+ suggest: [
+ {
+ messageId: 'conditionFixCompareNullish',
+ fix: util.getWrappingFixer({
+ sourceCode,
+ node,
+ wrap: code => `${code} != null`,
+ }),
+ },
+ ],
});
}
diff --git a/dist/rules/type-annotation-spacing.js b/dist/rules/type-annotation-spacing.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/type-annotation-spacing.js
+++ b/dist/rules/type-annotation-spacing.js
@@ -59,7 +59,5 @@
return rules.parameter;
}
- else {
- return rules.colon;
- }
+ return rules.colon;
}
function getRules(rules, node) {
@@ -77,7 +75,5 @@
return rules.returnType;
}
- else {
- return rules.colon;
- }
+ return rules.colon;
}
exports.default = util.createRule({
diff --git a/dist/rules/unified-signatures.js b/dist/rules/unified-signatures.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/unified-signatures.js
+++ b/dist/rules/unified-signatures.js
@@ -330,5 +330,5 @@
}
function addOverload(signature, key, containingNode) {
- key = key ?? getOverloadKey(signature);
+ key ??= getOverloadKey(signature);
if (currentScope &&
(containingNode || signature).parent === currentScope.parent) {
diff --git a/package.json b/package.json
index v6.1.0..v6.5.0 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
"name": "@typescript-eslint/eslint-plugin",
- "version": "6.1.0",
+ "version": "6.5.0",
"description": "TypeScript plugin for ESLint",
"files": [
@@ -52,5 +52,5 @@
"generate:configs": "yarn tsx tools/generate-configs.ts",
"lint": "nx lint",
- "test": "jest --coverage",
+ "test": "jest --coverage --logHeapUsage",
"test-single": "jest --no-coverage",
"typecheck": "tsc -p tsconfig.json --noEmit"
@@ -58,13 +58,12 @@
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.1.0",
- "@typescript-eslint/type-utils": "6.1.0",
- "@typescript-eslint/utils": "6.1.0",
- "@typescript-eslint/visitor-keys": "6.1.0",
+ "@typescript-eslint/scope-manager": "6.5.0",
+ "@typescript-eslint/type-utils": "6.5.0",
+ "@typescript-eslint/utils": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
"natural-compare": "^1.4.0",
- "natural-compare-lite": "^1.4.0",
"semver": "^7.5.4",
"ts-api-utils": "^1.0.1"
@@ -75,15 +74,19 @@
"@types/natural-compare": "*",
"@types/prettier": "*",
- "@typescript-eslint/rule-schema-to-typescript-types": "6.1.0",
- "@typescript-eslint/rule-tester": "6.1.0",
+ "@typescript-eslint/rule-schema-to-typescript-types": "6.5.0",
+ "@typescript-eslint/rule-tester": "6.5.0",
"ajv": "^6.12.6",
"chalk": "^5.3.0",
"cross-fetch": "*",
- "jest-specific-snapshot": "*",
+ "grapheme-splitter": "^1.0.4",
+ "jest": "29.6.2",
+ "jest-specific-snapshot": "^8.0.0",
"json-schema": "*",
"markdown-table": "^3.0.3",
"marked": "^5.1.1",
- "prettier": "*",
+ "prettier": "^2.8.4",
+ "rimraf": "*",
"title-case": "^3.0.3",
+ "tsx": "*",
"typescript": "*"
},
@@ -101,4 +104,4 @@
"url": "https://opencollective.com/typescript-eslint"
},
- "gitHead": "d98f1e811a6a06128a86f10824b6005984dc8265"
+ "gitHead": "4f34d0ba34474926ba1eed623704b583a037f886"
}
diff --git a/dist/configs/all.js.map b/dist/configs/all.js.map
index v6.1.0..v6.5.0 100644
--- a/dist/configs/all.js.map
+++ b/dist/configs/all.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map b/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map
index v6.1.0..v6.5.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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 (too long so truncated)
Command detailsnpm diff --diff=@typescript-eslint/eslint-plugin@6.1.0 --diff=@typescript-eslint/eslint-plugin@6.5.0 --diff-unified=2 See also the Reported by ybiquitous/npm-diff-action@v1.4.1 (Node.js 18.17.1 and npm 10.0.0) |
dependabot
bot
force-pushed
the
dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0
branch
4 times, most recently
from
September 1, 2023 05:44
464c894
to
e30d715
Compare
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.1.0 to 6.5.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/v6.5.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot
bot
force-pushed
the
dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0
branch
from
September 1, 2023 05:47
e30d715
to
da20fe4
Compare
ybiquitous
changed the title
build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.1.0 to 6.5.0
feat(typescript): add Sep 1, 2023
@typescript-eslint/class-methods-use-this
rule
Added eslint-config-ybiquitous/rules/core.js Line 15 in 4f9c88c
|
ybiquitous
deleted the
dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0
branch
September 1, 2023 06:42
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
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 @typescript-eslint/eslint-plugin from 6.1.0 to 6.5.0.
Release notes
Sourced from
@typescript-eslint/eslint-plugin
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/eslint-plugin
's changelog.... (truncated)
Commits
4f34d0b
chore: publish v6.5.023ac499
fix(eslint-plugin): [consistent-type-assertions] wrap object return value wit...85f34da
docs: add info for no-extra-semi (#7330)ef1367e
chore: publish v6.4.12e1cfd5
chore: upgrade to yarn 3 (#6162)b52658f
fix(eslint-plugin): [no-unnecessary-condition] false positives with branded t...66cc514
chore: enable logical-assignment-operators rule internally (#7484)e1897db
docs: fix typo in member-ordering (#7488)14bea42
chore: publish v6.4.09181252
docs: add note on common misconceptions about type narrowing (#7391)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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)