Skip to content

Commit f12bdbc

Browse files
authored
Add prefer-conditional-expression converter (#1060)
1 parent b6a3cd6 commit f12bdbc

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

src/converters/lintConfigs/rules/ruleConverters.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ import { convertOneLine } from "./ruleConverters/one-line";
112112
import { convertOneVariablePerDeclaration } from "./ruleConverters/one-variable-per-declaration";
113113
import { convertOnlyArrowFunctions } from "./ruleConverters/only-arrow-functions";
114114
import { convertOrderedImports } from "./ruleConverters/ordered-imports";
115+
import { convertPreferConditionalExpression } from "./ruleConverters/prefer-conditional-expression";
115116
import { convertPreferConst } from "./ruleConverters/prefer-const";
116117
import { convertPreferForOf } from "./ruleConverters/prefer-for-of";
117118
import { convertPreferFunctionOverMethod } from "./ruleConverters/prefer-function-over-method";
@@ -374,6 +375,7 @@ export const ruleConverters = new Map([
374375
["only-arrow-functions", convertOnlyArrowFunctions],
375376
["ordered-imports", convertOrderedImports],
376377
["pipe-prefix", convertPipePrefix],
378+
["prefer-conditional-expression", convertPreferConditionalExpression],
377379
["prefer-const", convertPreferConst],
378380
["prefer-for-of", convertPreferForOf],
379381
["prefer-function-over-method", convertPreferFunctionOverMethod],
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { RuleConverter } from "../ruleConverter";
2+
3+
export const PREFER_CONDITIONAL_EXPRESSION_NOTICE =
4+
"The eslint-plugin-unicorn only supports simple 'if-else' statements.";
5+
6+
export const convertPreferConditionalExpression: RuleConverter = (tslintRule) => {
7+
return {
8+
rules: [
9+
{
10+
...(tslintRule.ruleArguments.length !== 0 && {
11+
notices: [PREFER_CONDITIONAL_EXPRESSION_NOTICE],
12+
}),
13+
ruleName: "unicorn/prefer-ternary",
14+
},
15+
],
16+
plugins: ["eslint-plugin-unicorn"],
17+
};
18+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { convertPreferConditionalExpression, PREFER_CONDITIONAL_EXPRESSION_NOTICE } from "../prefer-conditional-expression";
2+
3+
describe(convertPreferConditionalExpression, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertPreferConditionalExpression({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "unicorn/prefer-ternary",
13+
},
14+
],
15+
plugins: ["eslint-plugin-unicorn"],
16+
});
17+
});
18+
19+
test("conversion with 'check-else-if' argument", () => {
20+
const result = convertPreferConditionalExpression({
21+
ruleArguments: ['check-else-if'],
22+
});
23+
24+
expect(result).toEqual({
25+
rules: [
26+
{
27+
notices: [PREFER_CONDITIONAL_EXPRESSION_NOTICE],
28+
ruleName: "unicorn/prefer-ternary",
29+
},
30+
],
31+
plugins: ["eslint-plugin-unicorn"],
32+
});
33+
});
34+
});

0 commit comments

Comments
 (0)