diff --git a/src/converters/lintConfigs/rules/ruleConverters.ts b/src/converters/lintConfigs/rules/ruleConverters.ts index 13857fd31..1853b72b3 100644 --- a/src/converters/lintConfigs/rules/ruleConverters.ts +++ b/src/converters/lintConfigs/rules/ruleConverters.ts @@ -112,6 +112,7 @@ import { convertOneLine } from "./ruleConverters/one-line"; import { convertOneVariablePerDeclaration } from "./ruleConverters/one-variable-per-declaration"; import { convertOnlyArrowFunctions } from "./ruleConverters/only-arrow-functions"; import { convertOrderedImports } from "./ruleConverters/ordered-imports"; +import { convertPreferConditionalExpression } from "./ruleConverters/prefer-conditional-expression"; import { convertPreferConst } from "./ruleConverters/prefer-const"; import { convertPreferForOf } from "./ruleConverters/prefer-for-of"; import { convertPreferFunctionOverMethod } from "./ruleConverters/prefer-function-over-method"; @@ -374,6 +375,7 @@ export const ruleConverters = new Map([ ["only-arrow-functions", convertOnlyArrowFunctions], ["ordered-imports", convertOrderedImports], ["pipe-prefix", convertPipePrefix], + ["prefer-conditional-expression", convertPreferConditionalExpression], ["prefer-const", convertPreferConst], ["prefer-for-of", convertPreferForOf], ["prefer-function-over-method", convertPreferFunctionOverMethod], diff --git a/src/converters/lintConfigs/rules/ruleConverters/prefer-conditional-expression.ts b/src/converters/lintConfigs/rules/ruleConverters/prefer-conditional-expression.ts new file mode 100644 index 000000000..167354e26 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/prefer-conditional-expression.ts @@ -0,0 +1,18 @@ +import { RuleConverter } from "../ruleConverter"; + +export const PREFER_CONDITIONAL_EXPRESSION_NOTICE = + "The eslint-plugin-unicorn only supports simple 'if-else' statements."; + +export const convertPreferConditionalExpression: RuleConverter = (tslintRule) => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.length !== 0 && { + notices: [PREFER_CONDITIONAL_EXPRESSION_NOTICE], + }), + ruleName: "unicorn/prefer-ternary", + }, + ], + plugins: ["eslint-plugin-unicorn"], + }; +}; diff --git a/src/converters/lintConfigs/rules/ruleConverters/tests/prefer-conditional-expression.test.ts b/src/converters/lintConfigs/rules/ruleConverters/tests/prefer-conditional-expression.test.ts new file mode 100644 index 000000000..58135b201 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/tests/prefer-conditional-expression.test.ts @@ -0,0 +1,34 @@ +import { convertPreferConditionalExpression, PREFER_CONDITIONAL_EXPRESSION_NOTICE } from "../prefer-conditional-expression"; + +describe(convertPreferConditionalExpression, () => { + test("conversion without arguments", () => { + const result = convertPreferConditionalExpression({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "unicorn/prefer-ternary", + }, + ], + plugins: ["eslint-plugin-unicorn"], + }); + }); + + test("conversion with 'check-else-if' argument", () => { + const result = convertPreferConditionalExpression({ + ruleArguments: ['check-else-if'], + }); + + expect(result).toEqual({ + rules: [ + { + notices: [PREFER_CONDITIONAL_EXPRESSION_NOTICE], + ruleName: "unicorn/prefer-ternary", + }, + ], + plugins: ["eslint-plugin-unicorn"], + }); + }); +}); \ No newline at end of file