From 86ca9de5911053217c72c8abf82420722b1888f8 Mon Sep 17 00:00:00 2001 From: Krzysztof Brilla Date: Sat, 7 Nov 2020 19:40:09 +0100 Subject: [PATCH 1/2] Adding the rule, mapping it and writing the tests --- .../lintConfigs/rules/ruleConverters.ts | 2 ++ .../no-implicit-any-catch.ts | 12 ++++++++++++ .../tests/no-implicit-any-catch.test..ts | 18 ++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts create mode 100644 src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts diff --git a/src/converters/lintConfigs/rules/ruleConverters.ts b/src/converters/lintConfigs/rules/ruleConverters.ts index 40c1f9c32..a83849d7a 100644 --- a/src/converters/lintConfigs/rules/ruleConverters.ts +++ b/src/converters/lintConfigs/rules/ruleConverters.ts @@ -183,6 +183,7 @@ import { convertJsxWrapMultiline } from "./ruleConverters/eslint-plugin-react/js //eslint-plugin-rxjs converters import { convertNoAsyncSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-async-subscribe"; +import { convertNoImplicitAnyCatch } from "./ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch"; /** * Keys TSLint rule names to their ESLint rule converters. @@ -368,6 +369,7 @@ export const ruleConverters = new Map([ ["use-pipe-transform-interface", convertUsePipeTransformInterface], ["variable-name", convertVariableName], ["rxjs-no-async-subscribe", convertNoAsyncSubscribe], + ["rxjs-no-implicit-any-catch", convertNoImplicitAnyCatch], // These converters are all for rules that need more complex option conversions. // Some of them will likely need to have notices about changed lint behaviors... diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts new file mode 100644 index 000000000..20339d646 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts @@ -0,0 +1,12 @@ +import { RuleConverter } from "../../ruleConverter"; + +export const convertNoImplicitAnyCatch: RuleConverter = () => { + return { + rules: [ + { + ruleName: "rxjs/no-implicit-any-catch", + }, + ], + plugins: ["eslint-plugin-rxjs"], + }; +}; diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts new file mode 100644 index 000000000..938bc3755 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts @@ -0,0 +1,18 @@ +import { convertNoImplicitAnyCatch } from "../no-implicit-any-catch"; + +describe(convertNoImplicitAnyCatch, () => { + test("conversion without arguments", () => { + const result = convertNoImplicitAnyCatch({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "rxjs/no-implicit-any-catch", + }, + ], + plugins: ["eslint-plugin-rxjs"], + }); + }); +}); From 4302acbe26d6913e7a72eaf0346986b96d8e15ad Mon Sep 17 00:00:00 2001 From: Krzysztof Brilla Date: Mon, 9 Nov 2020 19:02:59 +0100 Subject: [PATCH 2/2] added allowExplicitAny parameter conversion --- .../eslint-plugin-rxjs/no-implicit-any-catch.ts | 5 ++++- .../tests/no-implicit-any-catch.test..ts | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts index 20339d646..bc040b30b 100644 --- a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch.ts @@ -1,9 +1,12 @@ import { RuleConverter } from "../../ruleConverter"; -export const convertNoImplicitAnyCatch: RuleConverter = () => { +export const convertNoImplicitAnyCatch: RuleConverter = (tslintRule) => { return { rules: [ { + ...(tslintRule.ruleArguments.length !== 0 && { + ruleArguments: tslintRule.ruleArguments, + }), ruleName: "rxjs/no-implicit-any-catch", }, ], diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts index 938bc3755..c9517f702 100644 --- a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-implicit-any-catch.test..ts @@ -15,4 +15,20 @@ describe(convertNoImplicitAnyCatch, () => { plugins: ["eslint-plugin-rxjs"], }); }); + + test("conversion with allowExplicitAny argument", () => { + const result = convertNoImplicitAnyCatch({ + ruleArguments: [{ allowExplicitAny: true }], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "rxjs/no-implicit-any-catch", + ruleArguments: [{ allowExplicitAny: true }], + }, + ], + plugins: ["eslint-plugin-rxjs"], + }); + }); });