diff --git a/src/rules/converters.ts b/src/rules/converters.ts index d21e68bea..4a49453ef 100644 --- a/src/rules/converters.ts +++ b/src/rules/converters.ts @@ -54,6 +54,7 @@ import { convertNoFloatingPromises } from "./converters/no-floating-promises"; import { convertNoForIn } from "./converters/no-for-in"; import { convertNoForInArray } from "./converters/no-for-in-array"; import { convertNoImplicitDependencies } from "./converters/no-implicit-dependencies"; +import { convertNoImportSideEffect } from "./converters/no-import-side-effect"; import { convertNoInferrableTypes } from "./converters/no-inferrable-types"; import { convertNoInternalModule } from "./converters/no-internal-module"; import { convertNoInvalidRegexp } from "./converters/no-invalid-regexp"; @@ -184,6 +185,7 @@ export const converters = new Map([ ["no-for-in-array", convertNoForInArray], ["no-implicit-dependencies", convertNoImplicitDependencies], ["no-for-in", convertNoForIn], + ["no-import-side-effect", convertNoImportSideEffect], ["no-inferrable-types", convertNoInferrableTypes], ["no-internal-module", convertNoInternalModule], ["no-invalid-regexp", convertNoInvalidRegexp], diff --git a/src/rules/converters/no-import-side-effect.ts b/src/rules/converters/no-import-side-effect.ts new file mode 100644 index 000000000..4fdd8a4e7 --- /dev/null +++ b/src/rules/converters/no-import-side-effect.ts @@ -0,0 +1,21 @@ +import { RuleConverter } from "../converter"; + +export const convertNoImportSideEffect: RuleConverter = tsLintRule => { + const notices = []; + + if (tsLintRule.ruleArguments.length > 0) { + notices.push( + "ESLint's no-import-side-effect now accepts a glob pattern for ignores; you'll need to manually convert your ignore-module settings.", + ); + } + + return { + rules: [ + { + ruleArguments: [], + ruleName: "no-import-side-effect", + notices: notices, + }, + ], + }; +}; diff --git a/src/rules/converters/tests/no-import-side-effect.test.ts b/src/rules/converters/tests/no-import-side-effect.test.ts new file mode 100644 index 000000000..b45f6a851 --- /dev/null +++ b/src/rules/converters/tests/no-import-side-effect.test.ts @@ -0,0 +1,37 @@ +import { convertNoImportSideEffect } from "../no-import-side-effect"; + +describe(convertNoImportSideEffect, () => { + test("conversion without arguments", () => { + const result = convertNoImportSideEffect({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: [], + ruleName: "no-import-side-effect", + notices: [], + }, + ], + }); + }); + + test("conversion with arguments", () => { + const result = convertNoImportSideEffect({ + ruleArguments: [true, { "ignore-module": "(\\.html|\\.css)$" }], + }); + + expect(result).toEqual({ + rules: [ + { + ruleArguments: [], + ruleName: "no-import-side-effect", + notices: [ + "ESLint's no-import-side-effect now accepts a glob pattern for ignores; you'll need to manually convert your ignore-module settings.", + ], + }, + ], + }); + }); +});