From 8ae0404ca0930ee7156f346ab2238970035af4bb Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Sun, 31 Jul 2022 22:27:41 -0400 Subject: [PATCH] chore: enable eslint-plugin/recommended rules --- .eslintrc.js | 3 + .../src/rules/no-duplicate-enum-values.ts | 2 +- .../src/rules/no-useless-empty-export.ts | 2 +- .../rules/padding-line-between-statements.ts | 2 +- .../consistent-indexed-object-style.test.ts | 6 +- .../explicit-member-accessibility.test.ts | 108 +++--------------- .../tests/rules/no-dynamic-delete.test.ts | 38 ++---- .../tests/rules/no-empty-interface.test.ts | 7 +- .../tests/rules/prefer-as-const.test.ts | 6 +- .../tests/rules/prefer-function-type.test.ts | 7 +- 10 files changed, 32 insertions(+), 149 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 4d2673c632c2..c4eae75db4a6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -15,6 +15,7 @@ module.exports = { }, extends: [ 'eslint:recommended', + 'plugin:eslint-plugin/recommended', 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/recommended-requiring-type-checking', ], @@ -194,6 +195,7 @@ module.exports = { '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/no-unsafe-return': 'off', + 'eslint-plugin/consistent-output': 'off', 'eslint-plugin/no-identical-tests': 'error', 'jest/no-disabled-tests': 'warn', 'jest/no-focused-tests': 'error', @@ -243,6 +245,7 @@ module.exports = { 'packages/eslint-plugin/src/rules/**/*.ts', ], rules: { + 'eslint-plugin/require-meta-schema': 'off', // TODO: allow variable // specifically for rules - default exports makes the tooling easier 'import/no-default-export': 'off', }, diff --git a/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts b/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts index dcd0f6be36fa..814da92664e5 100644 --- a/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts +++ b/packages/eslint-plugin/src/rules/no-duplicate-enum-values.ts @@ -9,7 +9,7 @@ export default util.createRule({ description: 'Disallow duplicate enum member values', recommended: 'strict', }, - hasSuggestions: true, + hasSuggestions: false, messages: { duplicateValue: 'Duplicate enum member value {{value}}.', }, diff --git a/packages/eslint-plugin/src/rules/no-useless-empty-export.ts b/packages/eslint-plugin/src/rules/no-useless-empty-export.ts index c06c47b8f8e3..258c049e68df 100644 --- a/packages/eslint-plugin/src/rules/no-useless-empty-export.ts +++ b/packages/eslint-plugin/src/rules/no-useless-empty-export.ts @@ -31,7 +31,7 @@ export default util.createRule({ suggestion: true, }, fixable: 'code', - hasSuggestions: true, + hasSuggestions: false, messages: { uselessExport: 'Empty export does nothing and can be removed.', }, diff --git a/packages/eslint-plugin/src/rules/padding-line-between-statements.ts b/packages/eslint-plugin/src/rules/padding-line-between-statements.ts index e9d62632c820..938ba9524aa3 100644 --- a/packages/eslint-plugin/src/rules/padding-line-between-statements.ts +++ b/packages/eslint-plugin/src/rules/padding-line-between-statements.ts @@ -592,7 +592,7 @@ export default util.createRule({ extendsBaseRule: true, }, fixable: 'whitespace', - hasSuggestions: true, + hasSuggestions: false, schema: { definitions: { paddingType: { diff --git a/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts b/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts index b02fd3dfa2db..5c59f92b92de 100644 --- a/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts +++ b/packages/eslint-plugin/tests/rules/consistent-indexed-object-style.test.ts @@ -194,11 +194,7 @@ interface B extends A { [index: number]: unknown; } `, - output: ` -interface B extends A { - [index: number]: unknown; -} - `, + output: null, errors: [{ messageId: 'preferRecord', line: 2, column: 1 }], }, // Readonly interface with generic parameter diff --git a/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts b/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts index 2c3a5a86eb74..829e2987ad16 100644 --- a/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts +++ b/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts @@ -368,11 +368,7 @@ export class XXXX { line: 3, }, ], - output: ` -export class XXXX { - public constructor(readonly value: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -383,11 +379,7 @@ export class WithParameterProperty { `, options: [{ accessibility: 'explicit' }], errors: [{ messageId: 'missingAccessibility' }], - output: ` -export class WithParameterProperty { - public constructor(readonly value: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -406,11 +398,7 @@ export class XXXX { }, ], errors: [{ messageId: 'missingAccessibility' }], - output: ` -export class XXXX { - public constructor(readonly samosa: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -426,11 +414,7 @@ class Test { }, ], errors: [{ messageId: 'missingAccessibility' }], - output: ` -class Test { - public constructor(readonly foo: string) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -453,14 +437,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - x: number; - public getX() { - return this.x; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -483,14 +460,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - private x: number; - getX() { - return this.x; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -522,14 +492,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - x?: number; - getX?() { - return this.x; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -658,20 +621,7 @@ class Test { }, ], options: [{ overrides: { constructors: 'no-public' } }], - output: ` -class Test { - private x: number; - constructor(x: number) { - this.x = x; - } - get internalValue() { - return this.x; - } - set internalValue(value: number) { - this.x = value; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -706,20 +656,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - private x: number; - constructor(x: number) { - this.x = x; - } - get internalValue() { - return this.x; - } - set internalValue(value: number) { - this.x = value; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -743,14 +680,7 @@ class Test { overrides: { parameterProperties: 'no-public' }, }, ], - output: ` -class Test { - constructor(public x: number) {} - public foo(): string { - return 'foo'; - } -} - `, + output: null, }, { filename: 'test.ts', @@ -766,11 +696,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - constructor(public x: number) {} -} - `, + output: null, }, { filename: 'test.ts', @@ -818,11 +744,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - x = 2; -} - `, + output: null, }, { filename: 'test.ts', @@ -866,11 +788,7 @@ class Test { column: 3, }, ], - output: ` -class Test { - constructor(public ...x: any[]) {} -} - `, + output: null, }, { filename: 'test.ts', diff --git a/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts b/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts index 798971e90f18..782bc3fec577 100644 --- a/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts +++ b/packages/eslint-plugin/tests/rules/no-dynamic-delete.test.ts @@ -68,10 +68,7 @@ const container: { [i: string]: 0 } = {}; delete container['aa' + 'b']; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container['aa' + 'b']; - `, + output: null, }, { code: ` @@ -90,10 +87,7 @@ const container: { [i: string]: 0 } = {}; delete container[-Infinity]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container[-Infinity]; - `, + output: null, }, { code: ` @@ -101,10 +95,7 @@ const container: { [i: string]: 0 } = {}; delete container[+Infinity]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container[+Infinity]; - `, + output: null, }, { code: ` @@ -112,10 +103,7 @@ const container: { [i: string]: 0 } = {}; delete container[NaN]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -delete container[NaN]; - `, + output: null, }, { code: ` @@ -135,11 +123,7 @@ const name = 'name'; delete container[name]; `, errors: [{ messageId: 'dynamicDelete' }], - output: ` -const container: { [i: string]: 0 } = {}; -const name = 'name'; -delete container[name]; - `, + output: null, }, { code: ` @@ -147,11 +131,7 @@ const container: { [i: string]: 0 } = {}; const getName = () => 'aaa'; delete container[getName()]; `, - output: ` -const container: { [i: string]: 0 } = {}; -const getName = () => 'aaa'; -delete container[getName()]; - `, + output: null, errors: [{ messageId: 'dynamicDelete' }], }, { @@ -160,11 +140,7 @@ const container: { [i: string]: 0 } = {}; const name = { foo: { bar: 'bar' } }; delete container[name.foo.bar]; `, - output: ` -const container: { [i: string]: 0 } = {}; -const name = { foo: { bar: 'bar' } }; -delete container[name.foo.bar]; - `, + output: null, errors: [{ messageId: 'dynamicDelete' }], }, ], diff --git a/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts b/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts index f974af09c186..dc4ea909ea73 100644 --- a/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts +++ b/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts @@ -184,12 +184,7 @@ declare module FooBar { }, ], // output matches input because a suggestion was made - output: ` -declare module FooBar { - type Baz = typeof baz; - export interface Bar extends Baz {} -} - `.trimRight(), + output: null, }, ], }); diff --git a/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts b/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts index d5c15474f698..764301f4f68e 100644 --- a/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-as-const.test.ts @@ -62,7 +62,7 @@ ruleTester.run('prefer-as-const', rule, { }, { code: "let []: 'bar' = 'bar';", - output: "let []: 'bar' = 'bar';", + output: null, errors: [ { messageId: 'variableConstAssertion', @@ -73,7 +73,7 @@ ruleTester.run('prefer-as-const', rule, { }, { code: "let foo: 'bar' = 'bar';", - output: "let foo: 'bar' = 'bar';", + output: null, errors: [ { messageId: 'variableConstAssertion', @@ -90,7 +90,7 @@ ruleTester.run('prefer-as-const', rule, { }, { code: 'let foo: 2 = 2;', - output: 'let foo: 2 = 2;', + output: null, errors: [ { messageId: 'variableConstAssertion', diff --git a/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts b/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts index 50fb8370b187..452bcadffc89 100644 --- a/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-function-type.test.ts @@ -82,12 +82,7 @@ export default interface Foo { }, }, ], - output: ` -export default interface Foo { - /** comment */ - (): string; -} - `, + output: null, }, { code: `