diff --git a/src/rules/converters/codelyzer/directive-class-suffix.ts b/src/rules/converters/codelyzer/directive-class-suffix.ts new file mode 100644 index 000000000..ff1e2d720 --- /dev/null +++ b/src/rules/converters/codelyzer/directive-class-suffix.ts @@ -0,0 +1,19 @@ +import { RuleConverter } from "../../converter"; + +export const convertDirectiveClassSuffix: RuleConverter = (tslintRule) => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.length !== 0 && { + ruleArguments: [ + { + suffixes: tslintRule.ruleArguments, + }, + ], + }), + ruleName: "@angular-eslint/directive-class-suffix", + }, + ], + plugins: ["@angular-eslint/eslint-plugin"], + }; +}; diff --git a/src/rules/converters/codelyzer/tests/directive-class-suffix.test.ts b/src/rules/converters/codelyzer/tests/directive-class-suffix.test.ts new file mode 100644 index 000000000..55b64bd81 --- /dev/null +++ b/src/rules/converters/codelyzer/tests/directive-class-suffix.test.ts @@ -0,0 +1,38 @@ +import { convertDirectiveClassSuffix } from "../directive-class-suffix"; + +describe(convertDirectiveClassSuffix, () => { + test("conversion without arguments", () => { + const result = convertDirectiveClassSuffix({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@angular-eslint/directive-class-suffix", + }, + ], + plugins: ["@angular-eslint/eslint-plugin"], + }); + }); + + test("conversion with arguments", () => { + const result = convertDirectiveClassSuffix({ + ruleArguments: ["Directive", "View"], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: [ + { + suffixes: ["Directive", "View"], + }, + ], + ruleName: "@angular-eslint/directive-class-suffix", + }, + ], + plugins: ["@angular-eslint/eslint-plugin"], + }); + }); +}); diff --git a/src/rules/rulesConverters.ts b/src/rules/rulesConverters.ts index b58c01186..044143760 100644 --- a/src/rules/rulesConverters.ts +++ b/src/rules/rulesConverters.ts @@ -142,6 +142,7 @@ import { convertComponentClassSuffix } from "./converters/codelyzer/component-cl import { convertComponentMaxInlineDeclarations } from "./converters/codelyzer/component-max-inline-declarations"; import { convertComponentSelector } from "./converters/codelyzer/component-selector"; import { convertContextualLifecycle } from "./converters/codelyzer/contextual-lifecycle"; +import { convertDirectiveClassSuffix } from "./converters/codelyzer/directive-class-suffix"; import { convertNoAttributeDecorator } from "./converters/codelyzer/no-attribute-decorator"; import { convertUsePipeDecorator } from "./converters/codelyzer/use-pipe-decorator"; @@ -169,6 +170,7 @@ export const rulesConverters = new Map([ ["curly", convertCurly], ["cyclomatic-complexity", convertCyclomaticComplexity], ["deprecation", convertDeprecation], + ["directive-class-suffix", convertDirectiveClassSuffix], ["eofline", convertEofline], ["file-name-casing", convertFileNameCasing], ["forin", convertForin],