Skip to content

Commit aba8350

Browse files
authored
feat: converters for ngrx rules (#1194)
* feat: converters for `ngrx` rules * fix: wrong name for `no-effect-decorator-and-creator` * feat: add missing converter for `ngrx-no-duplicate-action-types` * fixup! feat: add missing converter for `ngrx-no-duplicate-action-types` * refactor: rename folder
1 parent 2d0cf99 commit aba8350

27 files changed

+408
-0
lines changed

src/converters/lintConfigs/rules/ruleConverters.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,18 @@ import { convertMochaAvoidOnly } from "./ruleConverters/mocha-avoid-only";
174174
import { convertNewParens } from "./ruleConverters/new-parens";
175175
import { convertNewlineBeforeReturn } from "./ruleConverters/newline-before-return";
176176
import { convertNewlinePerChainedCall } from "./ruleConverters/newline-per-chained-call";
177+
import { convertActionHygiene } from "./ruleConverters/ngrx-tslint-rules/action-hygiene";
178+
import { convertAvoidDispatchingMultipleActionsSequentially } from "./ruleConverters/ngrx-tslint-rules/avoid-dispatching-multiple-actions-sequentially";
179+
import { convertEffectCreatorAndDecorator } from "./ruleConverters/ngrx-tslint-rules/effect-creator-and-decorator";
180+
import { convertNoDispatchInEffects } from "./ruleConverters/ngrx-tslint-rules/no-dispatch-in-effects";
181+
import { convertNoDuplicateActionTypes } from "./ruleConverters/ngrx-tslint-rules/no-duplicate-action-types";
182+
import { convertNoEffectDecorator } from "./ruleConverters/ngrx-tslint-rules/no-effect-decorator";
183+
import { convertNoEffectsInProviders } from "./ruleConverters/ngrx-tslint-rules/no-effects-in-providers";
184+
import { convertNoMultipleActionsInEffects } from "./ruleConverters/ngrx-tslint-rules/no-multiple-actions-in-effects";
185+
import { convertNoReducerInKeyNames } from "./ruleConverters/ngrx-tslint-rules/no-reducer-in-key-names";
186+
import { convertNoTypedStore } from "./ruleConverters/ngrx-tslint-rules/no-typed-store";
187+
import { convertOnReducerExplicitReturnType } from "./ruleConverters/ngrx-tslint-rules/on-reducer-explicit-return-type";
188+
import { convertSelectorForSelect } from "./ruleConverters/ngrx-tslint-rules/selector-for-select";
177189
import { convertNoAngleBracketTypeAssertion } from "./ruleConverters/no-angle-bracket-type-assertion";
178190
import { convertNoArg } from "./ruleConverters/no-arg";
179191
import { convertNoAsyncWithoutAwait } from "./ruleConverters/no-async-without-await";
@@ -377,6 +389,22 @@ export const ruleConverters = new Map([
377389
["new-parens", convertNewParens],
378390
["newline-before-return", convertNewlineBeforeReturn],
379391
["newline-per-chained-call", convertNewlinePerChainedCall],
392+
["ngrx-action-hygiene", convertActionHygiene],
393+
[
394+
"ngrx-avoid-dispatching-multiple-actions-sequentially",
395+
convertAvoidDispatchingMultipleActionsSequentially,
396+
],
397+
["ngrx-effect-creator-and-decorator", convertEffectCreatorAndDecorator],
398+
["ngrx-no-dispatch-in-effects", convertNoDispatchInEffects],
399+
["ngrx-no-duplicate-action-types", convertNoDuplicateActionTypes],
400+
["ngrx-no-effect-decorator", convertNoEffectDecorator],
401+
["ngrx-no-effects-in-providers", convertNoEffectsInProviders],
402+
["ngrx-no-multiple-actions-in-effects", convertNoMultipleActionsInEffects],
403+
["ngrx-no-reducer-in-key-names", convertNoReducerInKeyNames],
404+
["ngrx-no-reducer-in-key-names", convertNoReducerInKeyNames],
405+
["ngrx-no-typed-store", convertNoTypedStore],
406+
["ngrx-on-reducer-explicit-return-type", convertOnReducerExplicitReturnType],
407+
["ngrx-selector-for-select", convertSelectorForSelect],
380408
["no-all-duplicated-branches", convertNoAllDuplicatedBranches],
381409
["no-alphabetical-sort", convertNoAlphabeticalSort],
382410
["no-angle-bracket-type-assertion", convertNoAngleBracketTypeAssertion],
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertActionHygiene: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/good-action-hygiene",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertAvoidDispatchingMultipleActionsSequentially: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/avoid-dispatching-multiple-actions-sequentially",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertEffectCreatorAndDecorator: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-effect-decorator-and-creator",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoDispatchInEffects: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-dispatch-in-effects",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoDuplicateActionTypes: RuleConverter = () => {
4+
return {
5+
rules: [],
6+
};
7+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoEffectDecorator: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-effect-decorator",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoEffectsInProviders: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-effects-in-providers",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoMultipleActionsInEffects: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-multiple-actions-in-effects",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoMultipleStores: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-multiple-global-stores",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoReducerInKeyNames: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-reducer-in-key-names",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertNoTypedStore: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/no-typed-global-store",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertOnReducerExplicitReturnType: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/on-function-explicit-return-type",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { RuleConverter } from "../../ruleConverter";
2+
3+
export const convertSelectorForSelect: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleName: "ngrx/use-selector-in-select",
8+
},
9+
],
10+
plugins: ["eslint-plugin-ngrx"],
11+
};
12+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertActionHygiene } from "../action-hygiene";
2+
3+
describe(convertActionHygiene, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertActionHygiene({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/good-action-hygiene",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertAvoidDispatchingMultipleActionsSequentially } from "../avoid-dispatching-multiple-actions-sequentially";
2+
3+
describe(convertAvoidDispatchingMultipleActionsSequentially, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertAvoidDispatchingMultipleActionsSequentially({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/avoid-dispatching-multiple-actions-sequentially",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertEffectCreatorAndDecorator } from "../effect-creator-and-decorator";
2+
3+
describe(convertEffectCreatorAndDecorator, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertEffectCreatorAndDecorator({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/no-effect-decorator-and-creator",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertNoDispatchInEffects } from "../no-dispatch-in-effects";
2+
3+
describe(convertNoDispatchInEffects, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoDispatchInEffects({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/no-dispatch-in-effects",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { convertNoDuplicateActionTypes } from "../no-duplicate-action-types";
2+
3+
describe(convertNoDuplicateActionTypes, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoDuplicateActionTypes({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [],
11+
});
12+
});
13+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertNoEffectDecorator } from "../no-effect-decorator";
2+
3+
describe(convertNoEffectDecorator, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoEffectDecorator({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/no-effect-decorator",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertNoEffectsInProviders } from "../no-effects-in-providers";
2+
3+
describe(convertNoEffectsInProviders, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoEffectsInProviders({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/no-effects-in-providers",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertNoMultipleActionsInEffects } from "../no-multiple-actions-in-effects";
2+
3+
describe(convertNoMultipleActionsInEffects, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoMultipleActionsInEffects({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/no-multiple-actions-in-effects",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertNoMultipleStores } from "../no-multiple-stores";
2+
3+
describe(convertNoMultipleStores, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoMultipleStores({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/no-multiple-global-stores",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { convertNoReducerInKeyNames } from "../no-reducer-in-key-names";
2+
3+
describe(convertNoReducerInKeyNames, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoReducerInKeyNames({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleName: "ngrx/no-reducer-in-key-names",
13+
},
14+
],
15+
plugins: ["eslint-plugin-ngrx"],
16+
});
17+
});
18+
});

0 commit comments

Comments
 (0)