diff --git a/src/converters/lintConfigs/rules/ruleConverters.ts b/src/converters/lintConfigs/rules/ruleConverters.ts index ccdb8339e..01e1e9562 100644 --- a/src/converters/lintConfigs/rules/ruleConverters.ts +++ b/src/converters/lintConfigs/rules/ruleConverters.ts @@ -205,6 +205,7 @@ import { convertJsxWrapMultiline } from "./ruleConverters/eslint-plugin-react/js import { convertNoAsyncSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-async-subscribe"; import { convertNoImplicitAnyCatch } from "./ruleConverters/eslint-plugin-rxjs/no-implicit-any-catch"; import { convertNoCreate } from "./ruleConverters/eslint-plugin-rxjs/no-create"; +import { convertNoExposedSubjects } from "./ruleConverters/eslint-plugin-rxjs/no-exposed-subjects"; import { convertNoIgnoredNotifier } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-notifier"; import { convertNoIgnoredReplayBuffer } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-replay-buffer"; import { convertNoIgnoredTakeWhileValue } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-takewhile-value"; @@ -425,6 +426,7 @@ export const ruleConverters = new Map([ ["rxjs-no-async-subscribe", convertNoAsyncSubscribe], ["rxjs-no-implicit-any-catch", convertNoImplicitAnyCatch], ["rxjs-no-create", convertNoCreate], + ["rxjs-no-exposed-subjects", convertNoExposedSubjects], ["rxjs-no-ignored-notifier", convertNoIgnoredNotifier], ["rxjs-no-ignored-replay-buffer", convertNoIgnoredReplayBuffer], ["rxjs-no-ignored-takewhile-value", convertNoIgnoredTakeWhileValue], diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-exposed-subjects.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-exposed-subjects.ts new file mode 100644 index 000000000..57ae6d527 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-exposed-subjects.ts @@ -0,0 +1,15 @@ +import { RuleConverter } from "../../ruleConverter"; + +export const convertNoExposedSubjects: RuleConverter = (tslintRule) => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.length !== 0 && { + ruleArguments: tslintRule.ruleArguments, + }), + ruleName: "rxjs/no-exposed-subjects", + }, + ], + plugins: ["eslint-plugin-rxjs"], + }; +}; diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-exposed-subjects.test.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-exposed-subjects.test.ts new file mode 100644 index 000000000..18d209c97 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-exposed-subjects.test.ts @@ -0,0 +1,34 @@ +import { convertNoExposedSubjects } from "../no-exposed-subjects"; + +describe(convertNoExposedSubjects, () => { + test("conversion without arguments", () => { + const result = convertNoExposedSubjects({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "rxjs/no-exposed-subjects", + }, + ], + plugins: ["eslint-plugin-rxjs"], + }); + }); + + test("conversion with allowProtected argument", () => { + const result = convertNoExposedSubjects({ + ruleArguments: [{ allowProtected: true }], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "rxjs/no-exposed-subjects", + ruleArguments: [{ allowProtected: true }], + }, + ], + plugins: ["eslint-plugin-rxjs"], + }); + }); +});