diff --git a/src/converters/lintConfigs/rules/ruleConverters.ts b/src/converters/lintConfigs/rules/ruleConverters.ts index 19d1ec55d..c6dab8996 100644 --- a/src/converters/lintConfigs/rules/ruleConverters.ts +++ b/src/converters/lintConfigs/rules/ruleConverters.ts @@ -187,6 +187,7 @@ import { convertJsxWrapMultiline } from "./ruleConverters/eslint-plugin-react/js import { convertNoAsyncSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-async-subscribe"; import { convertNoIgnoredReplayBuffer } from "./ruleConverters/eslint-plugin-rxjs/no-ignored-replay-buffer"; import { convertNoRedundantNotify } from "./ruleConverters/eslint-plugin-rxjs/no-redundant-notify"; +import { convertNoShareReplay } from "./ruleConverters/eslint-plugin-rxjs/no-sharereplay"; import { convertNoUnsafeSubjectNext } from "./ruleConverters/eslint-plugin-rxjs/no-unsafe-subject-next"; /** @@ -377,6 +378,7 @@ export const ruleConverters = new Map([ ["rxjs-no-async-subscribe", convertNoAsyncSubscribe], ["rxjs-no-ignored-replay-buffer", convertNoIgnoredReplayBuffer], ["rxjs-no-redundant-notify", convertNoRedundantNotify], + ["rxjs-no-sharereplay", convertNoShareReplay], ["rxjs-no-unsafe-subject-next", convertNoUnsafeSubjectNext], // These converters are all for rules that need more complex option conversions. diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-sharereplay.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-sharereplay.ts new file mode 100644 index 000000000..dc7649029 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/no-sharereplay.ts @@ -0,0 +1,15 @@ +import { RuleConverter } from "../../ruleConverter"; + +export const convertNoShareReplay: RuleConverter = (tslintRule) => { + return { + rules: [ + { + ...(tslintRule.ruleArguments.length !== 0 && { + ruleArguments: tslintRule.ruleArguments, + }), + ruleName: "rxjs/no-sharereplay", + }, + ], + plugins: ["eslint-plugin-rxjs"], + }; +}; diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-sharereplay.test.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-sharereplay.test.ts new file mode 100644 index 000000000..8da4b0556 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-rxjs/tests/no-sharereplay.test.ts @@ -0,0 +1,42 @@ +import { convertNoShareReplay } from "../no-sharereplay"; + +describe(convertNoShareReplay, () => { + test("conversion without arguments", () => { + const result = convertNoShareReplay({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "rxjs/no-sharereplay", + }, + ], + plugins: ["eslint-plugin-rxjs"], + }); + }); + + test("conversion without arguments", () => { + const result = convertNoShareReplay({ + ruleArguments: [ + { + allowConfig: true, + }, + ], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "rxjs/no-sharereplay", + ruleArguments: [ + { + allowConfig: true, + }, + ], + }, + ], + plugins: ["eslint-plugin-rxjs"], + }); + }); +});