diff --git a/src/rules/converters.ts b/src/rules/converters.ts index 96a036500..716e7a2ff 100644 --- a/src/rules/converters.ts +++ b/src/rules/converters.ts @@ -38,6 +38,7 @@ import { convertNoConstantCondition } from "./converters/no-constant-condition"; import { convertNoConstruct } from "./converters/no-construct"; import { convertNoControlRegex } from "./converters/no-control-regex"; import { convertNoDebugger } from "./converters/no-debugger"; +import { convertNoDuplicateImports } from "./converters/no-duplicate-imports"; import { convertNoDuplicateSuper } from "./converters/no-duplicate-super"; import { convertNoDuplicateSwitchCase } from "./converters/no-duplicate-switch-case"; import { convertNoEmpty } from "./converters/no-empty"; @@ -140,6 +141,7 @@ export const converters = new Map([ ["no-conditional-assignment", convertNoConditionalAssignment], ["no-construct", convertNoConstruct], ["no-debugger", convertNoDebugger], + ["no-duplicate-imports", convertNoDuplicateImports], ["no-duplicate-super", convertNoDuplicateSuper], ["no-duplicate-switch-case", convertNoDuplicateSwitchCase], ["no-empty-interface", convertNoEmptyInterface], diff --git a/src/rules/converters/no-duplicate-imports.ts b/src/rules/converters/no-duplicate-imports.ts new file mode 100644 index 000000000..1419d1509 --- /dev/null +++ b/src/rules/converters/no-duplicate-imports.ts @@ -0,0 +1,14 @@ +import { RuleConverter } from "../converter"; + +export const convertNoDuplicateImports: RuleConverter = tslintRule => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.includes("allow-namespace-imports") && { + notices: ["ESLint does not support optional config allow-namespace-imports."], + }), + ruleName: "no-duplicate-imports", + }, + ], + }; +}; diff --git a/src/rules/converters/tests/no-duplicate-imports.test.ts b/src/rules/converters/tests/no-duplicate-imports.test.ts new file mode 100644 index 000000000..b089f4198 --- /dev/null +++ b/src/rules/converters/tests/no-duplicate-imports.test.ts @@ -0,0 +1,32 @@ +import { convertNoDuplicateImports } from "../no-duplicate-imports"; + +describe(convertNoDuplicateImports, () => { + test("conversion without arguments", () => { + const result = convertNoDuplicateImports({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "no-duplicate-imports", + }, + ], + }); + }); + + test("conversion with allow-namespace-imports argument", () => { + const result = convertNoDuplicateImports({ + ruleArguments: ["allow-namespace-imports"], + }); + + expect(result).toEqual({ + rules: [ + { + notices: ["ESLint does not support optional config allow-namespace-imports."], + ruleName: "no-duplicate-imports", + }, + ], + }); + }); +});