Skip to content

Commit ecf6ee7

Browse files
authored
Add one-line rule converter (#413)
* Add one-line rule converter * Finer grained logic for one-line
1 parent d35a7ba commit ecf6ee7

File tree

3 files changed

+73
-0
lines changed

3 files changed

+73
-0
lines changed

src/rules/converters/one-line.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { RuleConverter } from "../converter";
2+
3+
export const CheckAllTokensMsg = "ESLint's brace-style will check all tokens.";
4+
5+
export const convertOneLine: RuleConverter = (tslintRule) => {
6+
const ruleLen = tslintRule.ruleArguments.length;
7+
return {
8+
rules: [
9+
{
10+
notices: ruleLen > 0 && ruleLen < 5 ? [CheckAllTokensMsg] : undefined,
11+
ruleArguments: [ruleLen > 0 ? "1tbs" : "off"],
12+
ruleName: "brace-style",
13+
},
14+
],
15+
};
16+
};
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import { convertOneLine, CheckAllTokensMsg } from "../one-line";
2+
3+
describe(convertOneLine, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertOneLine({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleArguments: ["off"],
13+
ruleName: "brace-style",
14+
},
15+
],
16+
});
17+
});
18+
19+
test("conversion with some arguments", () => {
20+
const result = convertOneLine({
21+
ruleArguments: ["check-catch"],
22+
});
23+
24+
expect(result).toEqual({
25+
rules: [
26+
{
27+
notices: [CheckAllTokensMsg],
28+
ruleArguments: ["1tbs"],
29+
ruleName: "brace-style",
30+
},
31+
],
32+
});
33+
});
34+
35+
test("conversion with all arguments", () => {
36+
const result = convertOneLine({
37+
ruleArguments: [
38+
"check-else",
39+
"check-catch",
40+
"check-finally",
41+
"check-open-brace",
42+
"check-whitespace",
43+
],
44+
});
45+
46+
expect(result).toEqual({
47+
rules: [
48+
{
49+
ruleArguments: ["1tbs"],
50+
ruleName: "brace-style",
51+
},
52+
],
53+
});
54+
});
55+
});

src/rules/rulesConverters.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ import { convertNoVarRequires } from "./converters/no-var-requires";
105105
import { convertNoVoidExpression } from "./converters/no-void-expression";
106106
import { convertObjectLiteralKeyQuotes } from "./converters/object-literal-key-quotes";
107107
import { convertObjectLiteralShorthand } from "./converters/object-literal-shorthand";
108+
import { convertOneLine } from "./converters/one-line";
108109
import { convertOneVariablePerDeclaration } from "./converters/one-variable-per-declaration";
109110
import { convertOnlyArrowFunctions } from "./converters/only-arrow-functions";
110111
import { convertOrderedImports } from "./converters/ordered-imports";
@@ -246,6 +247,7 @@ export const rulesConverters = new Map([
246247
["no-void-expression", convertNoVoidExpression],
247248
["object-literal-key-quotes", convertObjectLiteralKeyQuotes],
248249
["object-literal-shorthand", convertObjectLiteralShorthand],
250+
["one-line", convertOneLine],
249251
["one-variable-per-declaration", convertOneVariablePerDeclaration],
250252
["only-arrow-functions", convertOnlyArrowFunctions],
251253
["ordered-imports", convertOrderedImports],

0 commit comments

Comments
 (0)