8000 Merge branch 'main' into fix/#5201 · yeonjuan/typescript-eslint@b012da0 · GitHub
[go: up one dir, main page]

Skip to content

Commit b012da0

Browse files
committed
Merge branch 'main' into fix/typescript-eslint#5201
2 parents 78c7b1e + dc54196 commit b012da0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+558
-636
lines changed

.eslintrc.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module.exports = {
1515
},
1616
extends: [
1717
'eslint:recommended',
18+
'plugin:eslint-plugin/recommended',
1819
'plugin:@typescript-eslint/recommended',
1920
'plugin:@typescript-eslint/recommended-requiring-type-checking',
2021
],
@@ -194,7 +195,7 @@ module.exports = {
194195
'@typescript-eslint/no-unsafe-call': 'off',
195196
'@typescript-eslint/no-unsafe-member-access': 'off',
196197
'@typescript-eslint/no-unsafe-return': 'off',
197-
'eslint-plugin/no-identical-tests': 'error',
198+
'eslint-plugin/consistent-output': 'off', // Might eventually be removed from `eslint-plugin/recommended`: https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/284
198199
'jest/no-disabled-tests': 'warn',
199200
'jest/no-focused-tests': 'error',
200201
'jest/no-alias-methods': 'error',

docs/linting/troubleshooting/FORMATTING.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ That generally makes them run orders of magnitude slower.
2222
Additionally, modern formatters such as Prettier are architected in a way that applies formatting to all code regardless of original formatting.
2323
Linters typically run on a rule-by-rule basis, typically resulting in many edge cases and missed coverage in formatting.
2424

25+
### Suggested Usage
26+
27+
We recommend using [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier) to disable formatting rules in your ESLint configuration.
28+
You can then configure your formatter separately from ESLint.
29+
2530
## ESLint Core and Formatting
2631

2732
Per [ESLint's 2020 Changes to Rule Policies blog post](https://eslint.org/blog/2020/05/changes-to-rules-policies#what-are-the-changes):

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
"jest-diff": "^28.1.0",
9191
"jest-snapshot": "^28.1.0",
9292
"jest-specific-snapshot": "^5.0.0",
93-
"lerna": "5.3.0",
93+
"lerna": "5.4.0",
9494
"lint-staged": "^13.0.0",
9595
"make-dir": "^3.1.0",
9696
"markdownlint-cli": "^0.31.1",

packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ export default createRule({
3535
description:
3636
"Enforces rules don't use TS API properties with known bad type definitions",
3737
recommended: 'error',
38-
suggestion: true,
3938
requiresTypeChecking: true,
4039
},
4140
fixable: 'code',

packages/eslint-plugin/docs/rules/no-duplicate-enum-values.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ enum E {
2525

2626
```ts
2727
enum E {
28-
A = 'A'
29-
B = 'A'
28+
A = 'A',
29+
B = 'A',
3030
}
3131
```
3232

@@ -41,8 +41,8 @@ enum E {
4141

4242
```ts
4343
enum E {
44-
A = 'A'
45-
B = 'B'
44+
A = 'A',
45+
B = 'B',
4646
}
4747
```
4848

packages/eslint-plugin/src/rules/naming-convention.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
/* eslint-disable eslint-comments/no-use */
2+
/* eslint eslint-plugin/no-unused-message-ids:"off" -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/283 */
3+
/* eslint-enable eslint-comments/no-use */
4+
15
import { AST_NODE_TYPES, TSESLint, TSESTree } from '@typescript-eslint/utils';
26
import { PatternVisitor } from '@typescript-eslint/scope-manager';
37
import type { ScriptTarget } from 'typescript';

packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default util.createRule({
99
description: 'Disallow duplicate enum member values',
1010
recommended: 'strict',
1111
},
12-
hasSuggestions: true,
12+
hasSuggestions: false,
1313
messages: {
1414
duplicateValue: 'Duplicate enum member value {{value}}.',
1515
},

packages/eslint-plugin/src/rules/no-empty-interface.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ export default util.createRule<Options, MessageIds>({
1515
docs: {
1616
description: 'Disallow the declaration of empty interfaces',
1717
recommended: 'error',
18-
suggestion: true,
1918
},
2019
fixable: 'code',
21-
hasSuggestions: true,
20+
hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/272
2221
messages: {
2322
noEmpty: 'An empty interface is equivalent to `{}`.',
2423
noEmptyWithSuper:

packages/eslint-plugin/src/rules/no-explicit-any.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@ export default util.createRule<Options, MessageIds>({
1616
docs: {
1717
description: 'Disallow the `any` type',
1818
recommended: 'warn',
19-
suggestion: true,
2019
},
2120
fixable: 'code',
22-
hasSuggestions: true,
21+
hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/281
2322
messages: {
2423
unexpectedAny: 'Unexpected any. Specify a different type.',
2524
suggestUnknown:

packages/eslint-plugin/src/rules/no-floating-promises.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export default util.createRule<Options, MessageId>({
2020
description:
2121
'Require Promise-like statements to be handled appropriately',
2222
recommended: 'error',
23-
suggestion: true,
2423
requiresTypeChecking: true,
2524
},
2625
hasSuggestions: true,

packages/eslint-plugin/src/rules/no-implicit-any-catch.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export default util.createRule<Options, MessageIds>({
1919
docs: {
2020
description: 'Disallow usage of the implicit `any` type in catch clauses',
2121
recommended: false,
22-
suggestion: true,
2322
},
2423
fixable: 'code',
2524
hasSuggestions: true,

packages/eslint-plugin/src/rules/no-meaningless-void-operator.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export default util.createRule<
2020
description:
2121
'Disallow the `void` operator except when used to discard a value',
2222
recommended: 'strict',
23-
suggestion: true,
2423
requiresTypeChecking: true,
2524
},
2625
fixable: 'code',

packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export default util.createRule({
1919
description:
2020
'Disallow non-null assertions after an optional chain expression',
2121
recommended: 'error',
22-
suggestion: true,
2322
},
2423
hasSuggestions: true,
2524
messages: {

packages/eslint-plugin/src/rules/no-non-null-assertion.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export default util.createRule<[], MessageIds>({
1111
description:
1212
'Disallow non-null assertions using the `!` postfix operator',
1313
recommended: 'warn',
14-
suggestion: true,
1514
},
1615
hasSuggestions: true,
1716
messages: {

packages/eslint-plugin/src/rules/no-unnecessary-type-constraint.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ export default util.createRule({
3131
docs: {
3232
description: 'Disallow unnecessary constraints on generic types',
3333
recommended: 'error',
34-
suggestion: true,
3534
},
3635
hasSuggestions: true,
3736
messages: {
@@ -89,6 +88,9 @@ export default util.createRule({
8988
suggest: [
9089
{
9190
messageId: 'removeUnnecessaryConstraint',
91+
data: {
92+
constraint,
93+
},
9294
fix(fixer): TSESLint.RuleFix | null {
9395
return fixer.replaceTextRange(
9496
[node.name.range[1], node.constraint.range[1]],

packages/eslint-plugin/src/rules/no-unsafe-argument.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export default util.createRule<[], MessageIds>({
142142
unsafeArgument:
143143
'Unsafe argument of type `{{sender}}` assigned to a parameter of type `{{receiver}}`.',
144144
unsafeTupleSpread:
145-
'Unsafe spread of a tuple type. The {{index}} element is of type `{{sender}}` and is assigned to a parameter of type `{{reciever}}`.',
145+
'Unsafe spread of a tuple type. The argument is of type `{{sender}}` and is assigned to a parameter of type `{{receiver}}`.',
146146
unsafeArraySpread: 'Unsafe spread of an `any` array type.',
147147
unsafeSpread: 'Unsafe spread of an `any` type.',
148148
},

packages/eslint-plugin/src/rules/no-unsafe-call.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
/* eslint-disable eslint-comments/no-use */
2+
/* eslint eslint-plugin/no-unused-message-ids:"off" -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/282 */
3+
/* eslint-enable eslint-comments/no-use */
4+
15
import { TSESTree } from '@typescript-eslint/utils';
26
import * as tsutils from 'tsutils';
37
import * as util from '../util';

packages/eslint-plugin/src/rules/no-useless-empty-export.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,9 @@ export default util.createRule({
2828
description:
2929
"Disallow empty exports that don't change anything in a module file",
3030
recommended: false,
31-
suggestion: true,
3231
},
3332
fixable: 'code',
34-
hasSuggestions: true,
33+
hasSuggestions: false,
3534
messages: {
3635
uselessExport: 'Empty export does nothing and can be removed.',
3736
},

packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export default util.createRule({
1111
description: 'Enforce non-null assertions over explicit type casts',
1212
recommended: 'strict',
1313
requiresTypeChecking: true,
14-
suggestion: true,
1514
},
1615
fixable: 'code',
1716
messages: {

packages/eslint-plugin/src/rules/object-curly-spacing.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule>;
2020

2121
export default createRule<Options, MessageIds>({
2222
name: 'object-curly-spacing',
23+
// eslint-disable-next-line eslint-plugin/prefer-message-ids,eslint-plugin/require-meta-type,eslint-plugin/require-meta-schema,eslint-plugin/require-meta-fixable -- all in base rule - https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/274
2324
meta: {
2425
...baseRule.meta,
2526
docs: {

packages/eslint-plugin/src/rules/padding-line-between-statements.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ export default util.createRule<Options, MessageIds>({
592592
extendsBaseRule: true,
593593
},
594594
fixable: 'whitespace',
595-
hasSuggestions: true,
595+
hasSuggestions: false,
596596
schema: {
597597
definitions: {
598598
paddingType: {

packages/eslint-plugin/src/rules/prefer-as-const.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export default util.createRule({
88
docs: {
99
description: 'Enforce the use of `as const` over literal type',
1010
recommended: 'error',
11-
suggestion: true,
1211
},
1312
fixable: 'code',
1413
hasSuggestions: true,

packages/eslint-plugin/src/rules/prefer-enum-initializers.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export default util.createRule<[], MessageIds>({
1111
description:
1212
'Require each enum member value to be explicitly initialized',
1313
recommended: false,
14-
suggestion: true,
1514
},
1615
hasSuggestions: true,
1716
messages: {

packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export default util.createRule<Options, MessageIds>({
2828
description:
2929
'Enforce using the nullish coalescing operator instead of logical chaining',
3030
recommended: 'strict',
31-
suggestion: true,
3231
requiresTypeChecking: true,
3332
},
3433
hasSuggestions: true,

packages/eslint-plugin/src/rules/prefer-optional-chain.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export default util.createRule({
3636
description:
3737
'Enforce using concise optional chain expressions instead of chained logical ands',
3838
recommended: 'strict',
39-
suggestion: true,
4039
},
4140
hasSuggestions: true,
4241
messages: {

packages/eslint-plugin/src/rules/return-await.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export default util.createRule({
2525
extendsBaseRule: 'no-return-await',
2626
},
2727
fixable: 'code',
28-
hasSuggestions: true,
28+
hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/272
2929
type: 'problem',
3030
messages: {
3131
nonPromiseAwait:

packages/eslint-plugin/src/rules/sort-type-union-intersection-members.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export default util.createRule<Options, MessageIds>({
110110
recommended: false,
111111
},
112112
fixable: 'code',
113-
hasSuggestions: true,
113+
hasSuggestions: true, // eslint-disable-line eslint-plugin/require-meta-has-suggestions -- https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/272
114114
messages: {
115115
notSorted: '{{type}} type members must be sorted.',
116116
notSortedNamed: '{{type}} type {{name}} members must be sorted.',

packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ export default createRule({
1818
description:
1919
'Require switch-case statements to be exhaustive with union type',
2020
recommended: false,
21-
suggestion: true,
2221
requiresTypeChecking: true,
2322
},
2423
hasSuggestions: true,

packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,7 @@ interface B extends A {
194194
[index: number]: unknown;
195195
}
196196
`,
197-
output: `
198-
interface B extends A {
199-
[index: number]: unknown;
200-
}
201-
`,
197+
output: null,
202198
errors: [{ messageId: 'preferRecord', line: 2, column: 1 }],
203199
},
204200
// Readonly interface with generic parameter

0 commit comments

Comments
 (0)
0