diff --git a/src/rules/converters.ts b/src/rules/converters.ts index f609001ae..40e81fe50 100644 --- a/src/rules/converters.ts +++ b/src/rules/converters.ts @@ -103,6 +103,7 @@ import { convertRadix } from "./converters/radix"; import { convertRestrictPlusOperands } from "./converters/restrict-plus-operands"; import { convertSemicolon } from "./converters/semicolon"; import { convertSpaceBeforeFunctionParen } from "./converters/space-before-function-paren"; +import { convertSpaceWithinParens } from "./converters/space-within-parens"; import { convertSwitchDefault } from "./converters/switch-default"; import { convertTypedefWhitespace } from "./converters/typedef-whitespace"; import { convertTypeLiteralDelimiter } from "./converters/type-literal-delimiter"; @@ -225,6 +226,7 @@ export const converters = new Map([ ["restrict-plus-operands", convertRestrictPlusOperands], ["semicolon", convertSemicolon], ["space-before-function-paren", convertSpaceBeforeFunctionParen], + ["space-within-parens", convertSpaceWithinParens], ["switch-default", convertSwitchDefault], ["triple-equals", convertTripleEquals], ["type-literal-delimiter", convertTypeLiteralDelimiter], @@ -247,7 +249,9 @@ export const converters = new Map([ // ["no-duplicate-variable", convertNoDuplicateVariable], // no-redeclare // ["no-shadowed-variable", convertNoShadowedVariable], // no-shadow // ["no-unused-expression", convertNoUnusedExpression], // no-unused-expressions - // ["space-within-parens", convertSpaceWithinParens], // space-in-parens + // ["no-void-expression", convertNoVoidExpression], // (no exact equivalent) + // ["quotemark", convertQuotemark], // quotes + // ["triple-equals", convertTripleEquals], // eqeqeq // ["variable-name", convertVariableName], // a bunch of rules... // tslint-microsoft-contrib rules: diff --git a/src/rules/converters/space-within-parens.ts b/src/rules/converters/space-within-parens.ts new file mode 100644 index 000000000..5f48b0f02 --- /dev/null +++ b/src/rules/converters/space-within-parens.ts @@ -0,0 +1,21 @@ +import { RuleConverter } from "../converter"; + +export const convertSpaceWithinParens: RuleConverter = tslintRule => { + let arg = "never"; + const notices = []; + + if (tslintRule.ruleArguments.length === 1) { + arg = "always"; + notices.push("The number of spaces will be ignored"); + } + + return { + rules: [ + { + ruleArguments: [arg], + ruleName: "@typescript-eslint/space-within-parens", + notices, + }, + ], + }; +}; diff --git a/src/rules/converters/tests/space-within-parens.test.ts b/src/rules/converters/tests/space-within-parens.test.ts new file mode 100644 index 000000000..e464d096f --- /dev/null +++ b/src/rules/converters/tests/space-within-parens.test.ts @@ -0,0 +1,35 @@ +import { convertSpaceWithinParens } from "../space-within-parens"; + +describe(convertSpaceWithinParens, () => { + test("conversion without arguments", () => { + const result = convertSpaceWithinParens({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: ["never"], + ruleName: "@typescript-eslint/space-within-parens", + notices: [], + }, + ], + }); + }); + + test("conversion with min spaces arguement", () => { + const result = convertSpaceWithinParens({ + ruleArguments: [5], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: ["always"], + ruleName: "@typescript-eslint/space-within-parens", + notices: ["The number of spaces will be ignored"], + }, + ], + }); + }); +});