Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ test/*.js
~test/jest.config.js
!test/tests/**/.eslintrc*
!test/tests/**/*.log
.idea/
2 changes: 2 additions & 0 deletions src/converters/lintConfigs/rules/ruleConverters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ import { convertJsxWrapMultiline } from "./ruleConverters/eslint-plugin-react/js

//eslint-plugin-rxjs converters
import { convertNoAsyncSubscribe } from "./ruleConverters/eslint-plugin-rxjs/no-async-subscribe";
import { convertNoUnsafeTakeUntil } from "./ruleConverters/eslint-plugin-rxjs/no-unsafe-takeuntil";

/**
* Keys TSLint rule names to their ESLint rule converters.
Expand Down Expand Up @@ -368,6 +369,7 @@ export const ruleConverters = new Map([
["use-pipe-transform-interface", convertUsePipeTransformInterface],
["variable-name", convertVariableName],
["rxjs-no-async-subscribe", convertNoAsyncSubscribe],
["rxjs-no-unsafe-takeuntil", convertNoUnsafeTakeUntil],

// These converters are all for rules that need more complex option conversions.
// Some of them will likely need to have notices about changed lint behaviors...
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export const convertNoAsyncSubscribe: RuleConverter = () => {
return {
rules: [
{
ruleName: "no-async-subscribe",
ruleName: "rxjs/no-async-subscribe",
},
],
plugins: ["eslint-plugin-rxjs"],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { RuleConverter } from "../../ruleConverter";

export const convertNoUnsafeTakeUntil: RuleConverter = (tslintRule) => {
return {
rules: [
{
...(tslintRule.ruleArguments.length !== 0 && {
ruleArguments: tslintRule.ruleArguments,
}),
ruleName: "rxjs/no-unsafe-takeuntil",
},
],
plugins: ["eslint-plugin-rxjs"],
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ describe(convertNoAsyncSubscribe, () => {
expect(result).toEqual({
rules: [
{
ruleName: "no-async-subscribe",
ruleName: "rxjs/no-async-subscribe",
},
],
plugins: ["eslint-plugin-rxjs"],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { convertNoUnsafeTakeUntil } from "../no-unsafe-takeuntil";

describe(convertNoUnsafeTakeUntil, () => {
test("conversion without arguments", () => {
const result = convertNoUnsafeTakeUntil({
ruleArguments: [],
});

expect(result).toEqual({
rules: [
{
ruleName: "rxjs/no-unsafe-takeuntil",
},
],
plugins: ["eslint-plugin-rxjs"],
});
});

test("conversion with alias argument", () => {
const result = convertNoUnsafeTakeUntil({
ruleArguments: [{ alias: ["untilDestroyed"] }],
});

expect(result).toEqual({
rules: [
{
ruleName: "rxjs/no-unsafe-takeuntil",
ruleArguments: [{ alias: ["untilDestroyed"] }],
},
],
plugins: ["eslint-plugin-rxjs"],
});
});

test("conversion with allow argument", () => {
const result = convertNoUnsafeTakeUntil({
ruleArguments: [{ allow: ["shareReplay", "share"] }],
});

expect(result).toEqual({
rules: [
{
ruleName: "rxjs/no-unsafe-takeuntil",
ruleArguments: [{ allow: ["shareReplay", "share"] }],
},
],
plugins: ["eslint-plugin-rxjs"],
});
});
});