From 46ddc0c77db97e6d8dcf01b17013980d5c2d9ef8 Mon Sep 17 00:00:00 2001 From: "david.wuerfel" Date: Sun, 6 Oct 2019 12:45:43 +0200 Subject: [PATCH 1/7] feat (converter): Add no-default-export converter, impl pending --- src/rules/converters.ts | 2 ++ src/rules/converters/no-default-export.ts | 9 +++++++++ 2 files changed, 11 insertions(+) create mode 100644 src/rules/converters/no-default-export.ts diff --git a/src/rules/converters.ts b/src/rules/converters.ts index 78b2b9e94..5bf159595 100644 --- a/src/rules/converters.ts +++ b/src/rules/converters.ts @@ -40,6 +40,7 @@ import { convertNoConstantCondition } from "./converters/no-constant-condition"; import { convertNoConstruct } from "./converters/no-construct"; import { convertNoControlRegex } from "./converters/no-control-regex"; import { convertNoDebugger } from "./converters/no-debugger"; +import { convertNoDefaultExport } from "./converters/no-default-export"; import { convertNoDuplicateImports } from "./converters/no-duplicate-imports"; import { convertNoDuplicateSuper } from "./converters/no-duplicate-super"; import { convertNoDuplicateSwitchCase } from "./converters/no-duplicate-switch-case"; @@ -158,6 +159,7 @@ export const converters = new Map([ ["no-construct", convertNoConstruct], ["no-control-regex", convertNoControlRegex], ["no-debugger", convertNoDebugger], + ["no-default-export", convertNoDefaultExport], ["no-duplicate-imports", convertNoDuplicateImports], ["no-duplicate-super", convertNoDuplicateSuper], ["no-duplicate-switch-case", convertNoDuplicateSwitchCase], diff --git a/src/rules/converters/no-default-export.ts b/src/rules/converters/no-default-export.ts new file mode 100644 index 000000000..d61ada943 --- /dev/null +++ b/src/rules/converters/no-default-export.ts @@ -0,0 +1,9 @@ +import { RuleConverter } from "../converter"; + +export const convertNoDefaultExport: RuleConverter = () => { + return { + rules: [ + // TODO: devinmotion: Using import/no-default-export + ], + }; +}; From c84f8ec85841eb36fd79d8a44489a1850aa44a00 Mon Sep 17 00:00:00 2001 From: "david.wuerfel" Date: Sun, 6 Oct 2019 12:53:58 +0200 Subject: [PATCH 2/7] feat (converter): Use eslint import plugin for no-default-export --- src/rules/converters/no-default-export.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rules/converters/no-default-export.ts b/src/rules/converters/no-default-export.ts index d61ada943..2b28ed4d9 100644 --- a/src/rules/converters/no-default-export.ts +++ b/src/rules/converters/no-default-export.ts @@ -3,7 +3,10 @@ import { RuleConverter } from "../converter"; export const convertNoDefaultExport: RuleConverter = () => { return { rules: [ - // TODO: devinmotion: Using import/no-default-export + { + ruleName: "import/no-default-export", + }, ], + plugins: ["import"], }; }; From 681209ad920c22c749d40395e89c0facae42c2d3 Mon Sep 17 00:00:00 2001 From: "david.wuerfel" Date: Sun, 6 Oct 2019 12:57:29 +0200 Subject: [PATCH 3/7] test (converter): no-default-export test (has no arguments) --- .../converters/tests/no-default-export.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/rules/converters/tests/no-default-export.test.ts diff --git a/src/rules/converters/tests/no-default-export.test.ts b/src/rules/converters/tests/no-default-export.test.ts new file mode 100644 index 000000000..b985c49a4 --- /dev/null +++ b/src/rules/converters/tests/no-default-export.test.ts @@ -0,0 +1,18 @@ +import { convertNoDefaultExport } from "../no-default-export"; + +describe(convertNoDefaultExport, () => { + test("conversion without arguments", () => { + const result = convertNoDefaultExport({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "import/no-default-export", + }, + ], + plugins: ["import"], + }); + }); +}); From 003217217ca0e6b280cf0702196e2967e54fa476 Mon Sep 17 00:00:00 2001 From: "david.wuerfel" Date: Sun, 6 Oct 2019 13:13:43 +0200 Subject: [PATCH 4/7] test (converter): define e2e test for no-default-export --- test/tests/standalone tslint.json/expected.json | 4 +++- test/tests/standalone tslint.json/tslint.json | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/test/tests/standalone tslint.json/expected.json b/test/tests/standalone tslint.json/expected.json index 79186a52c..33ac13836 100644 --- a/test/tests/standalone tslint.json/expected.json +++ b/test/tests/standalone tslint.json/expected.json @@ -10,7 +10,8 @@ }, "plugins": [ "@typescript-eslint", - "@typescript-eslint/tslint" + "@typescript-eslint/tslint", + "import" ], "rules": { "@typescript-eslint/array-type": "error", @@ -27,6 +28,7 @@ "default-case": "off", "linebreak-style": "off", "no-bitwise": "off", + "import/no-default-export": true, "no-empty": "off", "no-magic-numbers": "off", "prefer-template": "off", diff --git a/test/tests/standalone tslint.json/tslint.json b/test/tests/standalone tslint.json/tslint.json index 4a2aa47f4..948d7c3fa 100644 --- a/test/tests/standalone tslint.json/tslint.json +++ b/test/tests/standalone tslint.json/tslint.json @@ -12,6 +12,7 @@ "no-any": false, "no-bitwise": false, "no-empty": false, + "no-default-export": true, "no-magic-numbers": false, "no-import-side-effect": false, "no-implicit-dependencies": [true, "dev"], From 2a99d6b845a9d889d9f99de2266e0df8c9f511d9 Mon Sep 17 00:00:00 2001 From: "david.wuerfel" Date: Sun, 6 Oct 2019 13:18:43 +0200 Subject: [PATCH 5/7] test (converter): move expected property to proper position --- test/tests/standalone tslint.json/expected.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tests/standalone tslint.json/expected.json b/test/tests/standalone tslint.json/expected.json index 33ac13836..f1100f702 100644 --- a/test/tests/standalone tslint.json/expected.json +++ b/test/tests/standalone tslint.json/expected.json @@ -26,9 +26,9 @@ "@typescript-eslint/unbound-method": "off", "arrow-body-style": "off", "default-case": "off", + "import/no-default-export": true, "linebreak-style": "off", "no-bitwise": "off", - "import/no-default-export": true, "no-empty": "off", "no-magic-numbers": "off", "prefer-template": "off", From 16bce000d5b74ed49eb25ca2c00126667f61dd34 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sun, 6 Oct 2019 14:12:01 -0400 Subject: [PATCH 6/7] Accepted new end-to-end tests --- test/tests/standalone tslint.json/eslintrc.js | 1 + test/tests/standalone tslint.json/expected.json | 4 +--- test/tests/standalone tslint.json/stdout.txt | 2 +- test/tests/standalone tslint.json/tslint-to-eslint-config.log | 1 + 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/tests/standalone tslint.json/eslintrc.js b/test/tests/standalone tslint.json/eslintrc.js index 04c4b5f7e..5706f1b76 100644 --- a/test/tests/standalone tslint.json/eslintrc.js +++ b/test/tests/standalone tslint.json/eslintrc.js @@ -45,6 +45,7 @@ module.exports = { "error", { "rules": { + "no-default-export": true, "no-implicit-dependencies": [ true, "dev" diff --git a/test/tests/standalone tslint.json/expected.json b/test/tests/standalone tslint.json/expected.json index f1100f702..79186a52c 100644 --- a/test/tests/standalone tslint.json/expected.json +++ b/test/tests/standalone tslint.json/expected.json @@ -10,8 +10,7 @@ }, "plugins": [ "@typescript-eslint", - "@typescript-eslint/tslint", - "import" + "@typescript-eslint/tslint" ], "rules": { "@typescript-eslint/array-type": "error", @@ -26,7 +25,6 @@ "@typescript-eslint/unbound-method": "off", "arrow-body-style": "off", "default-case": "off", - "import/no-default-export": true, "linebreak-style": "off", "no-bitwise": "off", "no-empty": "off", diff --git a/test/tests/standalone tslint.json/stdout.txt b/test/tests/standalone tslint.json/stdout.txt index 5b5f91fc5..6a225b971 100644 --- a/test/tests/standalone tslint.json/stdout.txt +++ b/test/tests/standalone tslint.json/stdout.txt @@ -1,5 +1,5 @@ ✨ 19 rules replaced with their ESLint equivalents. ✨ -️👀 2 rules do not yet have ESLint equivalents; defaulting to eslint-plugin-tslint. 👀 +️👀 3 rules do not yet have ESLint equivalents; defaulting to eslint-plugin-tslint. 👀 ⚡ 1 package is required for new ESLint rules. ⚡ unicorn ✅ All is well! ✅ diff --git a/test/tests/standalone tslint.json/tslint-to-eslint-config.log b/test/tests/standalone tslint.json/tslint-to-eslint-config.log index f76acb2ca..f400e4852 100644 --- a/test/tests/standalone tslint.json/tslint-to-eslint-config.log +++ b/test/tests/standalone tslint.json/tslint-to-eslint-config.log @@ -1,2 +1,3 @@ +no-default-export does not yet have an ESLint equivalent. no-implicit-dependencies does not yet have an ESLint equivalent. strict-boolean-expressions does not yet have an ESLint equivalent. From 58c05b90901eccc885f20d4c337f2266fd8738c0 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sun, 6 Oct 2019 14:15:36 -0400 Subject: [PATCH 7/7] Accepted new end-to-end tests --- test/tests/standalone tslint.json/eslintrc.js | 2 +- test/tests/standalone tslint.json/stdout.txt | 7 ++++--- .../standalone tslint.json/tslint-to-eslint-config.log | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/tests/standalone tslint.json/eslintrc.js b/test/tests/standalone tslint.json/eslintrc.js index 5706f1b76..d0a220fc6 100644 --- a/test/tests/standalone tslint.json/eslintrc.js +++ b/test/tests/standalone tslint.json/eslintrc.js @@ -26,6 +26,7 @@ module.exports = { "@typescript-eslint/unbound-method": "off", "arrow-body-style": "off", "default-case": "off", + "import/no-default-export": "error", "linebreak-style": "off", "no-bitwise": "off", "no-empty": "off", @@ -45,7 +46,6 @@ module.exports = { "error", { "rules": { - "no-default-export": true, "no-implicit-dependencies": [ true, "dev" diff --git a/test/tests/standalone tslint.json/stdout.txt b/test/tests/standalone tslint.json/stdout.txt index 6a225b971..8e8acdb02 100644 --- a/test/tests/standalone tslint.json/stdout.txt +++ b/test/tests/standalone tslint.json/stdout.txt @@ -1,5 +1,6 @@ -✨ 19 rules replaced with their ESLint equivalents. ✨ -️👀 3 rules do not yet have ESLint equivalents; defaulting to eslint-plugin-tslint. 👀 -⚡ 1 package is required for new ESLint rules. ⚡ +✨ 20 rules replaced with their ESLint equivalents. ✨ +️👀 2 rules do not yet have ESLint equivalents; defaulting to eslint-plugin-tslint. 👀 +⚡ 2 packages are required for new ESLint rules. ⚡ unicorn + import ✅ All is well! ✅ diff --git a/test/tests/standalone tslint.json/tslint-to-eslint-config.log b/test/tests/standalone tslint.json/tslint-to-eslint-config.log index f400e4852..f76acb2ca 100644 --- a/test/tests/standalone tslint.json/tslint-to-eslint-config.log +++ b/test/tests/standalone tslint.json/tslint-to-eslint-config.log @@ -1,3 +1,2 @@ -no-default-export does not yet have an ESLint equivalent. no-implicit-dependencies does not yet have an ESLint equivalent. strict-boolean-expressions does not yet have an ESLint equivalent.