diff --git a/src/rules/converters/one-line.ts b/src/rules/converters/one-line.ts new file mode 100644 index 000000000..f3743b7b1 --- /dev/null +++ b/src/rules/converters/one-line.ts @@ -0,0 +1,16 @@ +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: [ + { + 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 new file mode 100644 index 000000000..5049b73e3 --- /dev/null +++ b/src/rules/converters/tests/one-line.test.ts @@ -0,0 +1,55 @@ +import { convertOneLine, CheckAllTokensMsg } from "../one-line"; + +describe(convertOneLine, () => { + test("conversion without arguments", () => { + const result = convertOneLine({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: ["off"], + ruleName: "brace-style", + }, + ], + }); + }); + + test("conversion with some arguments", () => { + const result = convertOneLine({ + ruleArguments: ["check-catch"], + }); + + expect(result).toEqual({ + rules: [ + { + notices: [CheckAllTokensMsg], + ruleArguments: ["1tbs"], + ruleName: "brace-style", + }, + ], + }); + }); + + 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", + }, + ], + }); + }); +}); 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],