From c6ac9d75a16a58395e33d7c5c95cef5223fc2179 Mon Sep 17 00:00:00 2001 From: KingDarBoja Date: Sun, 26 Apr 2020 01:19:41 -0500 Subject: [PATCH 1/2] Add one-line rule converter --- src/rules/converters/one-line.ts | 17 +++++++++++ src/rules/converters/tests/one-line.test.ts | 34 +++++++++++++++++++++ src/rules/rulesConverters.ts | 2 ++ 3 files changed, 53 insertions(+) create mode 100644 src/rules/converters/one-line.ts create mode 100644 src/rules/converters/tests/one-line.test.ts diff --git a/src/rules/converters/one-line.ts b/src/rules/converters/one-line.ts new file mode 100644 index 000000000..a8652a87d --- /dev/null +++ b/src/rules/converters/one-line.ts @@ -0,0 +1,17 @@ +import { RuleConverter } from "../converter"; + +export const CheckAllTokensMsg = "ESLint's brace-style will check all tokens."; + +export const convertOneLine: RuleConverter = (tslintRule) => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.length !== 0 && { + notices: [CheckAllTokensMsg], + }), + ruleArguments: ["1tbs"], + ruleName: "brace-style", + }, + ], + }; +}; diff --git a/src/rules/converters/tests/one-line.test.ts b/src/rules/converters/tests/one-line.test.ts new file mode 100644 index 000000000..d8e1c6100 --- /dev/null +++ b/src/rules/converters/tests/one-line.test.ts @@ -0,0 +1,34 @@ +import { convertOneLine, CheckAllTokensMsg } from "../one-line"; + +describe(convertOneLine, () => { + test("conversion without arguments", () => { + const result = convertOneLine({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: ["1tbs"], + ruleName: "brace-style", + }, + ], + }); + }); + + test("conversion with arguments", () => { + const result = convertOneLine({ + ruleArguments: ["check-catch"], + }); + + expect(result).toEqual({ + rules: [ + { + notices: [CheckAllTokensMsg], + ruleArguments: ["1tbs"], + ruleName: "brace-style", + }, + ], + }); + }); +}); diff --git a/src/rules/rulesConverters.ts b/src/rules/rulesConverters.ts index 95671e19e..e53b7af20 100644 --- a/src/rules/rulesConverters.ts +++ b/src/rules/rulesConverters.ts @@ -105,6 +105,7 @@ import { convertNoVarRequires } from "./converters/no-var-requires"; import { convertNoVoidExpression } from "./converters/no-void-expression"; import { convertObjectLiteralKeyQuotes } from "./converters/object-literal-key-quotes"; import { convertObjectLiteralShorthand } from "./converters/object-literal-shorthand"; +import { convertOneLine } from "./converters/one-line"; import { convertOneVariablePerDeclaration } from "./converters/one-variable-per-declaration"; import { convertOnlyArrowFunctions } from "./converters/only-arrow-functions"; import { convertOrderedImports } from "./converters/ordered-imports"; @@ -246,6 +247,7 @@ export const rulesConverters = new Map([ ["no-void-expression", convertNoVoidExpression], ["object-literal-key-quotes", convertObjectLiteralKeyQuotes], ["object-literal-shorthand", convertObjectLiteralShorthand], + ["one-line", convertOneLine], ["one-variable-per-declaration", convertOneVariablePerDeclaration], ["only-arrow-functions", convertOnlyArrowFunctions], ["ordered-imports", convertOrderedImports], From c23bf0eb49135b2177ebcdcdd0022c07833ce58c Mon Sep 17 00:00:00 2001 From: KingDarBoja Date: Sun, 26 Apr 2020 16:05:23 -0500 Subject: [PATCH 2/2] Finer grained logic for one-line --- src/rules/converters/one-line.ts | 7 +++--- src/rules/converters/tests/one-line.test.ts | 25 +++++++++++++++++++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/rules/converters/one-line.ts b/src/rules/converters/one-line.ts index a8652a87d..f3743b7b1 100644 --- a/src/rules/converters/one-line.ts +++ b/src/rules/converters/one-line.ts @@ -3,13 +3,12 @@ import { RuleConverter } from "../converter"; export const CheckAllTokensMsg = "ESLint's brace-style will check all tokens."; export const convertOneLine: RuleConverter = (tslintRule) => { + const ruleLen = tslintRule.ruleArguments.length; return { rules: [ { - ...(tslintRule.ruleArguments.length !== 0 && { - notices: [CheckAllTokensMsg], - }), - ruleArguments: ["1tbs"], + notices: ruleLen > 0 && ruleLen < 5 ? [CheckAllTokensMsg] : undefined, + ruleArguments: [ruleLen > 0 ? "1tbs" : "off"], ruleName: "brace-style", }, ], diff --git a/src/rules/converters/tests/one-line.test.ts b/src/rules/converters/tests/one-line.test.ts index d8e1c6100..5049b73e3 100644 --- a/src/rules/converters/tests/one-line.test.ts +++ b/src/rules/converters/tests/one-line.test.ts @@ -9,14 +9,14 @@ describe(convertOneLine, () => { expect(result).toEqual({ rules: [ { - ruleArguments: ["1tbs"], + ruleArguments: ["off"], ruleName: "brace-style", }, ], }); }); - test("conversion with arguments", () => { + test("conversion with some arguments", () => { const result = convertOneLine({ ruleArguments: ["check-catch"], }); @@ -31,4 +31,25 @@ describe(convertOneLine, () => { ], }); }); + + test("conversion with all arguments", () => { + const result = convertOneLine({ + ruleArguments: [ + "check-else", + "check-catch", + "check-finally", + "check-open-brace", + "check-whitespace", + ], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: ["1tbs"], + ruleName: "brace-style", + }, + ], + }); + }); });