diff --git a/src/rules/converters/codelyzer/component-class-suffix.ts b/src/rules/converters/codelyzer/component-class-suffix.ts new file mode 100644 index 000000000..d253a6399 --- /dev/null +++ b/src/rules/converters/codelyzer/component-class-suffix.ts @@ -0,0 +1,19 @@ +import { RuleConverter } from "../../converter"; + +export const convertComponentClassSuffix: RuleConverter = (tslintRule) => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.length !== 0 && { + ruleArguments: [ + { + suffixes: tslintRule.ruleArguments, + }, + ], + }), + ruleName: "@angular-eslint/component-class-suffix", + }, + ], + plugins: ["@angular-eslint/eslint-plugin"], + }; +}; diff --git a/src/rules/converters/codelyzer/tests/component-class-suffix.test.ts b/src/rules/converters/codelyzer/tests/component-class-suffix.test.ts new file mode 100644 index 000000000..69019e0de --- /dev/null +++ b/src/rules/converters/codelyzer/tests/component-class-suffix.test.ts @@ -0,0 +1,38 @@ +import { convertComponentClassSuffix } from "../component-class-suffix"; + +describe(convertComponentClassSuffix, () => { + test("conversion without arguments", () => { + const result = convertComponentClassSuffix({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@angular-eslint/component-class-suffix", + }, + ], + plugins: ["@angular-eslint/eslint-plugin"], + }); + }); + + test("conversion with arguments", () => { + const result = convertComponentClassSuffix({ + ruleArguments: ["Component", "View"], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: [ + { + suffixes: ["Component", "View"], + }, + ], + ruleName: "@angular-eslint/component-class-suffix", + }, + ], + plugins: ["@angular-eslint/eslint-plugin"], + }); + }); +}); diff --git a/src/rules/rulesConverters.ts b/src/rules/rulesConverters.ts index b9bfabcec..206f02b00 100644 --- a/src/rules/rulesConverters.ts +++ b/src/rules/rulesConverters.ts @@ -137,6 +137,9 @@ import { convertUseDefaultTypeParameter } from "./converters/use-default-type-pa import { convertUseIsnan } from "./converters/use-isnan"; import { convertVariableName } from "./converters/variable-name"; +// Codelyzer converters +import { convertComponentClassSuffix } from "./converters/codelyzer/component-class-suffix"; + /** * Keys TSLint rule names to their ESLint rule converters. */ @@ -154,6 +157,7 @@ export const rulesConverters = new Map([ ["callable-types", convertCallableTypes], ["class-name", convertClassName], ["comment-format", convertCommentFormat], + ["component-class-suffix", convertComponentClassSuffix], ["curly", convertCurly], ["cyclomatic-complexity", convertCyclomaticComplexity], ["deprecation", convertDeprecation],