eslint-plugin-effector 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -37
- package/dist/index.cjs +1259 -0
- package/dist/index.d.cts +177 -0
- package/dist/index.d.mts +178 -0
- package/dist/index.mjs +1233 -0
- package/package.json +71 -17
- package/.nvmrc +0 -1
- package/config/future.js +0 -7
- package/config/patronum.js +0 -5
- package/config/react.js +0 -7
- package/config/recommended.js +0 -15
- package/config/scope.js +0 -6
- package/index.js +0 -31
- package/rules/enforce-effect-naming-convention/enforce-effect-naming-convention.js +0 -143
- package/rules/enforce-gate-naming-convention/enforce-gate-naming-convention.js +0 -122
- package/rules/enforce-store-naming-convention/enforce-store-naming-convention.js +0 -205
- package/rules/keep-options-order/config.js +0 -3
- package/rules/keep-options-order/keep-options-order.js +0 -107
- package/rules/mandatory-scope-binding/mandatory-scope-binding.js +0 -81
- package/rules/no-ambiguity-target/no-ambiguity-target.js +0 -74
- package/rules/no-duplicate-clock-or-source-array-values/no-duplicate-clock-or-source-array-values.js +0 -120
- package/rules/no-duplicate-on/no-duplicate-on.js +0 -137
- package/rules/no-forward/no-forward.js +0 -73
- package/rules/no-getState/no-getState.js +0 -50
- package/rules/no-guard/no-guard.js +0 -78
- package/rules/no-patronum-debug/no-patronum-debug.js +0 -133
- package/rules/no-unnecessary-combination/no-unnecessary-combination.js +0 -88
- package/rules/no-unnecessary-duplication/no-unnecessary-duplication.js +0 -115
- package/rules/no-useless-methods/no-useless-methods.js +0 -93
- package/rules/no-watch/no-watch.js +0 -61
- package/rules/prefer-sample-over-forward-with-mapping/prefer-sample-over-forward-with-mapping.js +0 -111
- package/rules/prefer-useUnit/prefer-useUnit.js +0 -56
- package/rules/require-pickup-in-persist/require-pickup-in-persist.js +0 -47
- package/rules/strict-effect-handlers/strict-effect-handlers.js +0 -76
- package/utils/are-nodes-same-in-text.js +0 -22
- package/utils/builders.js +0 -19
- package/utils/create-link-to-rule.js +0 -5
- package/utils/extract-config.js +0 -26
- package/utils/extract-imported-from.js +0 -18
- package/utils/get-corrected-store-name.js +0 -45
- package/utils/get-nested-object-name.js +0 -18
- package/utils/get-store-name-convention.js +0 -6
- package/utils/is.js +0 -39
- package/utils/method.js +0 -23
- package/utils/naming.js +0 -47
- package/utils/node-is-type.js +0 -5
- package/utils/node-type-is.js +0 -106
- package/utils/react.js +0 -214
- package/utils/read-example.js +0 -63
- package/utils/replace-by-sample.js +0 -98
- package/utils/traverse-nested-object-node.js +0 -9
- package/utils/traverse-parent-by-type.js +0 -15
- package/utils/validate-store-name-convention.js +0 -13
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { TSESLint } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
//#region src/index.d.ts
|
|
4
|
+
declare const base: {
|
|
5
|
+
meta: {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
namespace: string;
|
|
9
|
+
};
|
|
10
|
+
rules: {
|
|
11
|
+
"enforce-effect-naming-convention": TSESLint.RuleModule<"invalid" | "rename", [], unknown, TSESLint.RuleListener> & {
|
|
12
|
+
name: string;
|
|
13
|
+
};
|
|
14
|
+
"enforce-gate-naming-convention": TSESLint.RuleModule<"invalid" | "rename", [], unknown, TSESLint.RuleListener> & {
|
|
15
|
+
name: string;
|
|
16
|
+
};
|
|
17
|
+
"enforce-store-naming-convention": TSESLint.RuleModule<"invalid" | "rename", [{
|
|
18
|
+
mode: "prefix" | "postfix";
|
|
19
|
+
}], unknown, TSESLint.RuleListener> & {
|
|
20
|
+
name: string;
|
|
21
|
+
};
|
|
22
|
+
"keep-options-order": TSESLint.RuleModule<"invalidOrder" | "changeOrder", [], unknown, TSESLint.RuleListener> & {
|
|
23
|
+
name: string;
|
|
24
|
+
};
|
|
25
|
+
"mandatory-scope-binding": TSESLint.RuleModule<"useUnitNeeded", [], unknown, TSESLint.RuleListener> & {
|
|
26
|
+
name: string;
|
|
27
|
+
};
|
|
28
|
+
"no-ambiguity-target": TSESLint.RuleModule<"ambiguous", [], unknown, TSESLint.RuleListener> & {
|
|
29
|
+
name: string;
|
|
30
|
+
};
|
|
31
|
+
"no-domain-unit-creators": TSESLint.RuleModule<"avoid", [], unknown, TSESLint.RuleListener> & {
|
|
32
|
+
name: string;
|
|
33
|
+
};
|
|
34
|
+
"no-duplicate-clock-or-source-array-values": TSESLint.RuleModule<"duplicate" | "remove", [], unknown, TSESLint.RuleListener> & {
|
|
35
|
+
name: string;
|
|
36
|
+
};
|
|
37
|
+
"no-duplicate-on": TSESLint.RuleModule<"duplicate", [], unknown, TSESLint.RuleListener> & {
|
|
38
|
+
name: string;
|
|
39
|
+
};
|
|
40
|
+
"no-forward": TSESLint.RuleModule<"noForward" | "replaceWithSample", [], unknown, TSESLint.RuleListener> & {
|
|
41
|
+
name: string;
|
|
42
|
+
};
|
|
43
|
+
"no-getState": TSESLint.RuleModule<"named" | "anonymous", [], unknown, TSESLint.RuleListener> & {
|
|
44
|
+
name: string;
|
|
45
|
+
};
|
|
46
|
+
"no-guard": TSESLint.RuleModule<"replaceWithSample" | "noGuard", [], unknown, TSESLint.RuleListener> & {
|
|
47
|
+
name: string;
|
|
48
|
+
};
|
|
49
|
+
"no-patronum-debug": TSESLint.RuleModule<"remove" | "unexpected", [], unknown, TSESLint.RuleListener> & {
|
|
50
|
+
name: string;
|
|
51
|
+
};
|
|
52
|
+
"no-unnecessary-combination": TSESLint.RuleModule<"unnecessary", [], unknown, TSESLint.RuleListener> & {
|
|
53
|
+
name: string;
|
|
54
|
+
};
|
|
55
|
+
"no-unnecessary-duplication": TSESLint.RuleModule<"duplicate" | "removeClock" | "removeSource", [], unknown, TSESLint.RuleListener> & {
|
|
56
|
+
name: string;
|
|
57
|
+
};
|
|
58
|
+
"no-useless-methods": TSESLint.RuleModule<"uselessMethod", [], unknown, TSESLint.RuleListener> & {
|
|
59
|
+
name: string;
|
|
60
|
+
};
|
|
61
|
+
"no-watch": TSESLint.RuleModule<"restricted", [], unknown, TSESLint.RuleListener> & {
|
|
62
|
+
name: string;
|
|
63
|
+
};
|
|
64
|
+
"prefer-useUnit": TSESLint.RuleModule<"useUseUnit", [], unknown, TSESLint.RuleListener> & {
|
|
65
|
+
name: string;
|
|
66
|
+
};
|
|
67
|
+
"require-pickup-in-persist": TSESLint.RuleModule<"missing", [], unknown, TSESLint.RuleListener> & {
|
|
68
|
+
name: string;
|
|
69
|
+
};
|
|
70
|
+
"strict-effect-handlers": TSESLint.RuleModule<"mixed", [], unknown, TSESLint.RuleListener> & {
|
|
71
|
+
name: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
declare const legacyConfigs: {
|
|
76
|
+
recommended: {
|
|
77
|
+
rules: {
|
|
78
|
+
"effector/enforce-effect-naming-convention": "error";
|
|
79
|
+
"effector/enforce-store-naming-convention": "error";
|
|
80
|
+
"effector/keep-options-order": "warn";
|
|
81
|
+
"effector/no-ambiguity-target": "warn";
|
|
82
|
+
"effector/no-duplicate-on": "error";
|
|
83
|
+
"effector/no-forward": "error";
|
|
84
|
+
"effector/no-getState": "error";
|
|
85
|
+
"effector/no-guard": "error";
|
|
86
|
+
"effector/no-unnecessary-combination": "warn";
|
|
87
|
+
"effector/no-unnecessary-duplication": "warn";
|
|
88
|
+
"effector/no-useless-methods": "error";
|
|
89
|
+
"effector/no-watch": "warn";
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
scope: {
|
|
93
|
+
rules: {
|
|
94
|
+
"effector/require-pickup-in-persist": "error";
|
|
95
|
+
"effector/strict-effect-handlers": "error";
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
react: {
|
|
99
|
+
rules: {
|
|
100
|
+
"effector/enforce-gate-naming-convention": "error";
|
|
101
|
+
"effector/mandatory-scope-binding": "error";
|
|
102
|
+
"effector/prefer-useUnit": "error";
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
future: {
|
|
106
|
+
rules: {
|
|
107
|
+
"effector/no-domain-unit-creators": "warn";
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
patronum: {
|
|
111
|
+
rules: {
|
|
112
|
+
"effector/no-patronum-debug": "warn";
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
declare const flatConfigs: {
|
|
117
|
+
recommended: {
|
|
118
|
+
plugins: {
|
|
119
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
120
|
+
};
|
|
121
|
+
rules: {
|
|
122
|
+
"effector/enforce-effect-naming-convention": "error";
|
|
123
|
+
"effector/enforce-store-naming-convention": "error";
|
|
124
|
+
"effector/keep-options-order": "warn";
|
|
125
|
+
"effector/no-ambiguity-target": "warn";
|
|
126
|
+
"effector/no-duplicate-on": "error";
|
|
127
|
+
"effector/no-forward": "error";
|
|
128
|
+
"effector/no-getState": "error";
|
|
129
|
+
"effector/no-guard": "error";
|
|
130
|
+
"effector/no-unnecessary-combination": "warn";
|
|
131
|
+
"effector/no-unnecessary-duplication": "warn";
|
|
132
|
+
"effector/no-useless-methods": "error";
|
|
133
|
+
"effector/no-watch": "warn";
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
scope: {
|
|
137
|
+
plugins: {
|
|
138
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
139
|
+
};
|
|
140
|
+
rules: {
|
|
141
|
+
"effector/require-pickup-in-persist": "error";
|
|
142
|
+
"effector/strict-effect-handlers": "error";
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
react: {
|
|
146
|
+
plugins: {
|
|
147
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
148
|
+
};
|
|
149
|
+
rules: {
|
|
150
|
+
"effector/enforce-gate-naming-convention": "error";
|
|
151
|
+
"effector/mandatory-scope-binding": "error";
|
|
152
|
+
"effector/prefer-useUnit": "error";
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
future: {
|
|
156
|
+
plugins: {
|
|
157
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
158
|
+
};
|
|
159
|
+
rules: {
|
|
160
|
+
"effector/no-domain-unit-creators": "warn";
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
patronum: {
|
|
164
|
+
plugins: {
|
|
165
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
166
|
+
};
|
|
167
|
+
rules: {
|
|
168
|
+
"effector/no-patronum-debug": "warn";
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
declare const plugin: {
|
|
173
|
+
flatConfigs: typeof flatConfigs;
|
|
174
|
+
/** @deprecated Migrate to modern ESLint v9 Flat Config format */
|
|
175
|
+
configs: typeof legacyConfigs;
|
|
176
|
+
} & typeof base;
|
|
177
|
+
export = plugin;
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { TSESLint } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
//#region src/index.d.ts
|
|
4
|
+
declare const base: {
|
|
5
|
+
meta: {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
namespace: string;
|
|
9
|
+
};
|
|
10
|
+
rules: {
|
|
11
|
+
"enforce-effect-naming-convention": TSESLint.RuleModule<"invalid" | "rename", [], unknown, TSESLint.RuleListener> & {
|
|
12
|
+
name: string;
|
|
13
|
+
};
|
|
14
|
+
"enforce-gate-naming-convention": TSESLint.RuleModule<"invalid" | "rename", [], unknown, TSESLint.RuleListener> & {
|
|
15
|
+
name: string;
|
|
16
|
+
};
|
|
17
|
+
"enforce-store-naming-convention": TSESLint.RuleModule<"invalid" | "rename", [{
|
|
18
|
+
mode: "prefix" | "postfix";
|
|
19
|
+
}], unknown, TSESLint.RuleListener> & {
|
|
20
|
+
name: string;
|
|
21
|
+
};
|
|
22
|
+
"keep-options-order": TSESLint.RuleModule<"invalidOrder" | "changeOrder", [], unknown, TSESLint.RuleListener> & {
|
|
23
|
+
name: string;
|
|
24
|
+
};
|
|
25
|
+
"mandatory-scope-binding": TSESLint.RuleModule<"useUnitNeeded", [], unknown, TSESLint.RuleListener> & {
|
|
26
|
+
name: string;
|
|
27
|
+
};
|
|
28
|
+
"no-ambiguity-target": TSESLint.RuleModule<"ambiguous", [], unknown, TSESLint.RuleListener> & {
|
|
29
|
+
name: string;
|
|
30
|
+
};
|
|
31
|
+
"no-domain-unit-creators": TSESLint.RuleModule<"avoid", [], unknown, TSESLint.RuleListener> & {
|
|
32
|
+
name: string;
|
|
33
|
+
};
|
|
34
|
+
"no-duplicate-clock-or-source-array-values": TSESLint.RuleModule<"duplicate" | "remove", [], unknown, TSESLint.RuleListener> & {
|
|
35
|
+
name: string;
|
|
36
|
+
};
|
|
37
|
+
"no-duplicate-on": TSESLint.RuleModule<"duplicate", [], unknown, TSESLint.RuleListener> & {
|
|
38
|
+
name: string;
|
|
39
|
+
};
|
|
40
|
+
"no-forward": TSESLint.RuleModule<"noForward" | "replaceWithSample", [], unknown, TSESLint.RuleListener> & {
|
|
41
|
+
name: string;
|
|
42
|
+
};
|
|
43
|
+
"no-getState": TSESLint.RuleModule<"named" | "anonymous", [], unknown, TSESLint.RuleListener> & {
|
|
44
|
+
name: string;
|
|
45
|
+
};
|
|
46
|
+
"no-guard": TSESLint.RuleModule<"replaceWithSample" | "noGuard", [], unknown, TSESLint.RuleListener> & {
|
|
47
|
+
name: string;
|
|
48
|
+
};
|
|
49
|
+
"no-patronum-debug": TSESLint.RuleModule<"remove" | "unexpected", [], unknown, TSESLint.RuleListener> & {
|
|
50
|
+
name: string;
|
|
51
|
+
};
|
|
52
|
+
"no-unnecessary-combination": TSESLint.RuleModule<"unnecessary", [], unknown, TSESLint.RuleListener> & {
|
|
53
|
+
name: string;
|
|
54
|
+
};
|
|
55
|
+
"no-unnecessary-duplication": TSESLint.RuleModule<"duplicate" | "removeClock" | "removeSource", [], unknown, TSESLint.RuleListener> & {
|
|
56
|
+
name: string;
|
|
57
|
+
};
|
|
58
|
+
"no-useless-methods": TSESLint.RuleModule<"uselessMethod", [], unknown, TSESLint.RuleListener> & {
|
|
59
|
+
name: string;
|
|
60
|
+
};
|
|
61
|
+
"no-watch": TSESLint.RuleModule<"restricted", [], unknown, TSESLint.RuleListener> & {
|
|
62
|
+
name: string;
|
|
63
|
+
};
|
|
64
|
+
"prefer-useUnit": TSESLint.RuleModule<"useUseUnit", [], unknown, TSESLint.RuleListener> & {
|
|
65
|
+
name: string;
|
|
66
|
+
};
|
|
67
|
+
"require-pickup-in-persist": TSESLint.RuleModule<"missing", [], unknown, TSESLint.RuleListener> & {
|
|
68
|
+
name: string;
|
|
69
|
+
};
|
|
70
|
+
"strict-effect-handlers": TSESLint.RuleModule<"mixed", [], unknown, TSESLint.RuleListener> & {
|
|
71
|
+
name: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
declare const legacyConfigs: {
|
|
76
|
+
recommended: {
|
|
77
|
+
rules: {
|
|
78
|
+
"effector/enforce-effect-naming-convention": "error";
|
|
79
|
+
"effector/enforce-store-naming-convention": "error";
|
|
80
|
+
"effector/keep-options-order": "warn";
|
|
81
|
+
"effector/no-ambiguity-target": "warn";
|
|
82
|
+
"effector/no-duplicate-on": "error";
|
|
83
|
+
"effector/no-forward": "error";
|
|
84
|
+
"effector/no-getState": "error";
|
|
85
|
+
"effector/no-guard": "error";
|
|
86
|
+
"effector/no-unnecessary-combination": "warn";
|
|
87
|
+
"effector/no-unnecessary-duplication": "warn";
|
|
88
|
+
"effector/no-useless-methods": "error";
|
|
89
|
+
"effector/no-watch": "warn";
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
scope: {
|
|
93
|
+
rules: {
|
|
94
|
+
"effector/require-pickup-in-persist": "error";
|
|
95
|
+
"effector/strict-effect-handlers": "error";
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
react: {
|
|
99
|
+
rules: {
|
|
100
|
+
"effector/enforce-gate-naming-convention": "error";
|
|
101
|
+
"effector/mandatory-scope-binding": "error";
|
|
102
|
+
"effector/prefer-useUnit": "error";
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
future: {
|
|
106
|
+
rules: {
|
|
107
|
+
"effector/no-domain-unit-creators": "warn";
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
patronum: {
|
|
111
|
+
rules: {
|
|
112
|
+
"effector/no-patronum-debug": "warn";
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
declare const flatConfigs: {
|
|
117
|
+
recommended: {
|
|
118
|
+
plugins: {
|
|
119
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
120
|
+
};
|
|
121
|
+
rules: {
|
|
122
|
+
"effector/enforce-effect-naming-convention": "error";
|
|
123
|
+
"effector/enforce-store-naming-convention": "error";
|
|
124
|
+
"effector/keep-options-order": "warn";
|
|
125
|
+
"effector/no-ambiguity-target": "warn";
|
|
126
|
+
"effector/no-duplicate-on": "error";
|
|
127
|
+
"effector/no-forward": "error";
|
|
128
|
+
"effector/no-getState": "error";
|
|
129
|
+
"effector/no-guard": "error";
|
|
130
|
+
"effector/no-unnecessary-combination": "warn";
|
|
131
|
+
"effector/no-unnecessary-duplication": "warn";
|
|
132
|
+
"effector/no-useless-methods": "error";
|
|
133
|
+
"effector/no-watch": "warn";
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
scope: {
|
|
137
|
+
plugins: {
|
|
138
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
139
|
+
};
|
|
140
|
+
rules: {
|
|
141
|
+
"effector/require-pickup-in-persist": "error";
|
|
142
|
+
"effector/strict-effect-handlers": "error";
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
react: {
|
|
146
|
+
plugins: {
|
|
147
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
148
|
+
};
|
|
149
|
+
rules: {
|
|
150
|
+
"effector/enforce-gate-naming-convention": "error";
|
|
151
|
+
"effector/mandatory-scope-binding": "error";
|
|
152
|
+
"effector/prefer-useUnit": "error";
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
future: {
|
|
156
|
+
plugins: {
|
|
157
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
158
|
+
};
|
|
159
|
+
rules: {
|
|
160
|
+
"effector/no-domain-unit-creators": "warn";
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
patronum: {
|
|
164
|
+
plugins: {
|
|
165
|
+
effector: TSESLint.FlatConfig.Plugin;
|
|
166
|
+
};
|
|
167
|
+
rules: {
|
|
168
|
+
"effector/no-patronum-debug": "warn";
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
declare const plugin: {
|
|
173
|
+
flatConfigs: typeof flatConfigs;
|
|
174
|
+
/** @deprecated Migrate to modern ESLint v9 Flat Config format */
|
|
175
|
+
configs: typeof legacyConfigs;
|
|
176
|
+
} & typeof base;
|
|
177
|
+
//#endregion
|
|
178
|
+
export { plugin as default };
|