diff --git a/src/converters/lintConfigs/rules/ruleConverters.ts b/src/converters/lintConfigs/rules/ruleConverters.ts index fe455ff7b..b33a3633e 100644 --- a/src/converters/lintConfigs/rules/ruleConverters.ts +++ b/src/converters/lintConfigs/rules/ruleConverters.ts @@ -172,6 +172,7 @@ import { convertTemplateBananaInBox } from "./ruleConverters/codelyzer/template- import { convertTemplateClickEventsHaveKeyEvents } from "./ruleConverters/codelyzer/template-click-events-have-key-events"; import { convertTemplateConditionalComplexity } from "./ruleConverters/codelyzer/template-conditional-complexity"; import { convertTemplateCyclomaticComplexity } from "./ruleConverters/codelyzer/template-cyclomatic-complexity"; +import { convertTemplateI18N } from "./ruleConverters/codelyzer/template-i18n"; import { convertTemplateMouseEventsHaveKeyEvents } from "./ruleConverters/codelyzer/template-mouse-events-have-key-events"; import { convertTemplateNoAny } from "./ruleConverters/codelyzer/template-no-any"; import { convertTemplateNoAutofocus } from "./ruleConverters/codelyzer/template-no-autofocus"; @@ -392,6 +393,7 @@ export const ruleConverters = new Map([ ["template-conditional-complexity", convertTemplateConditionalComplexity], ["template-click-events-have-key-events", convertTemplateClickEventsHaveKeyEvents], ["template-cyclomatic-complexity", convertTemplateCyclomaticComplexity], + ["template-i18n", convertTemplateI18N], ["template-mouse-events-have-key-events", convertTemplateMouseEventsHaveKeyEvents], ["template-no-any", convertTemplateNoAny], ["template-no-autofocus", convertTemplateNoAutofocus], diff --git a/src/converters/lintConfigs/rules/ruleConverters/codelyzer/template-i18n.ts b/src/converters/lintConfigs/rules/ruleConverters/codelyzer/template-i18n.ts new file mode 100644 index 000000000..f4e2868a5 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/codelyzer/template-i18n.ts @@ -0,0 +1,20 @@ +import { RuleConverter } from "../../ruleConverter"; + +export const convertTemplateI18N: RuleConverter = (tslintRule) => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.length !== 0 && { + ruleArguments: [ + { + ...(tslintRule.ruleArguments.includes("check-id") && { checkId: true }), + ...(tslintRule.ruleArguments.includes("check-text") && { checkText: true }), + }, + ], + }), + ruleName: "@angular-eslint/template/i18n", + }, + ], + plugins: ["@angular-eslint/eslint-plugin-template"], + }; +}; diff --git a/src/converters/lintConfigs/rules/ruleConverters/codelyzer/tests/template-i18n.test.ts b/src/converters/lintConfigs/rules/ruleConverters/codelyzer/tests/template-i18n.test.ts new file mode 100644 index 000000000..4472c32bb --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/codelyzer/tests/template-i18n.test.ts @@ -0,0 +1,39 @@ +import { convertTemplateI18N } from "../template-i18n"; + +describe(convertTemplateI18N, () => { + test("conversion without arguments", () => { + const result = convertTemplateI18N({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@angular-eslint/template/i18n", + }, + ], + plugins: ["@angular-eslint/eslint-plugin-template"], + }); + }); + + test("conversion with arguments", () => { + const result = convertTemplateI18N({ + ruleArguments: ["check-id", "check-text"], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: [ + { + checkId: true, + checkText: true, + }, + ], + ruleName: "@angular-eslint/template/i18n", + }, + ], + plugins: ["@angular-eslint/eslint-plugin-template"], + }); + }); +});