diff --git a/src/rules/converters/indent.ts b/src/rules/converters/indent.ts index 7adf534f4..6685477d5 100644 --- a/src/rules/converters/indent.ts +++ b/src/rules/converters/indent.ts @@ -1,10 +1,19 @@ import { RuleConverter } from "../converter"; -export const convertIndent: RuleConverter = () => { +export const convertIndent: RuleConverter = tslintRule => { + let indentSize: number | string = 4; // @typescript-eslint/indent default + + if (tslintRule.ruleArguments[0] === "tabs") { + indentSize = "tabs"; + } else if (tslintRule.ruleArguments[1] === 2) { + indentSize = 2; + } + return { rules: [ { ruleName: "@typescript-eslint/indent", + ...(indentSize !== 4 && { ruleArguments: [indentSize] }), }, ], }; diff --git a/src/rules/converters/tests/indent.test.ts b/src/rules/converters/tests/indent.test.ts index 9e7f5f3e1..bed0c2a48 100644 --- a/src/rules/converters/tests/indent.test.ts +++ b/src/rules/converters/tests/indent.test.ts @@ -14,4 +14,48 @@ describe(convertIndent, () => { ], }); }); + + test("conversion with 2 spaces", () => { + const result = convertIndent({ + ruleArguments: ["spaces", 2], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@typescript-eslint/indent", + ruleArguments: [2], + }, + ], + }); + }); + + test("conversion with 4 spaces", () => { + const result = convertIndent({ + ruleArguments: ["spaces", 4], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@typescript-eslint/indent", + }, + ], + }); + }); + + test("conversion with tabs", () => { + const result = convertIndent({ + ruleArguments: ["tabs", 4], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@typescript-eslint/indent", + ruleArguments: ["tabs"], + }, + ], + }); + }); });