@ololoepepe/eslint-config 0.0.21 → 0.1.1
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/CHANGELOG.md +61 -0
- package/README.md +127 -1
- package/package.json +30 -10
- package/src/index.js +58 -297
- package/src/node.js +23 -0
- package/src/plugins/eslint-comments.js +12 -0
- package/src/plugins/import-x.js +107 -0
- package/src/plugins/n.js +43 -0
- package/src/plugins/promise.js +23 -0
- package/src/plugins/react-hooks.js +30 -0
- package/src/plugins/react.js +89 -0
- package/src/plugins/regexp.js +90 -0
- package/src/plugins/sort-keys-shorthand.js +7 -9
- package/src/plugins/stylistic.js +395 -0
- package/src/plugins/unicorn.js +321 -0
- package/src/react.js +40 -0
- package/src/rules/core.js +261 -0
- package/src/rules/jsx-stylistic.js +60 -0
- package/src/rules/no.js +237 -158
- package/src/plugins/import.js +0 -107
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
export const rules = {
|
|
2
|
+
'unicorn/better-dom-traversing': 'error',
|
|
3
|
+
'unicorn/catch-error-name': 'error',
|
|
4
|
+
'unicorn/class-reference-in-static-methods': 'error',
|
|
5
|
+
'unicorn/comment-content': 'off',
|
|
6
|
+
'unicorn/consistent-assert': 'error',
|
|
7
|
+
'unicorn/consistent-boolean-name': 'error',
|
|
8
|
+
'unicorn/consistent-class-member-order': 'error',
|
|
9
|
+
'unicorn/consistent-compound-words': 'error',
|
|
10
|
+
'unicorn/consistent-conditional-object-spread': 'error',
|
|
11
|
+
'unicorn/consistent-date-clone': 'error',
|
|
12
|
+
'unicorn/consistent-destructuring': 'off',
|
|
13
|
+
'unicorn/consistent-empty-array-spread': 'error',
|
|
14
|
+
'unicorn/consistent-existence-index-check': 'error',
|
|
15
|
+
'unicorn/consistent-export-decorator-position': 'error',
|
|
16
|
+
'unicorn/consistent-function-scoping': 'error',
|
|
17
|
+
'unicorn/consistent-function-style': 'off',
|
|
18
|
+
'unicorn/consistent-json-file-read': 'error',
|
|
19
|
+
'unicorn/consistent-optional-chaining': 'error',
|
|
20
|
+
'unicorn/consistent-template-literal-escape': 'error',
|
|
21
|
+
'unicorn/consistent-tuple-labels': 'error',
|
|
22
|
+
'unicorn/custom-error-definition': 'off',
|
|
23
|
+
'unicorn/default-export-style': 'error',
|
|
24
|
+
'unicorn/dom-node-dataset': 'error',
|
|
25
|
+
'unicorn/empty-brace-spaces': 'error',
|
|
26
|
+
'unicorn/error-message': 'error',
|
|
27
|
+
'unicorn/escape-case': 'error',
|
|
28
|
+
'unicorn/expiring-todo-comments': 'error',
|
|
29
|
+
'unicorn/explicit-length-check': 'error',
|
|
30
|
+
'unicorn/explicit-timer-delay': 'error',
|
|
31
|
+
'unicorn/filename-case': [
|
|
32
|
+
'error',
|
|
33
|
+
{
|
|
34
|
+
case: 'kebabCase'
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
'unicorn/id-match': 'off',
|
|
38
|
+
'unicorn/import-style': 'off',
|
|
39
|
+
'unicorn/isolated-functions': 'error',
|
|
40
|
+
'unicorn/logical-assignment-operators': 'error',
|
|
41
|
+
'unicorn/max-nested-calls': 'error',
|
|
42
|
+
'unicorn/name-replacements': 'error',
|
|
43
|
+
'unicorn/new-for-builtins': 'error',
|
|
44
|
+
'unicorn/no-abusive-eslint-disable': 'error',
|
|
45
|
+
'unicorn/no-accessor-recursion': 'error',
|
|
46
|
+
'unicorn/no-accidental-bitwise-operator': 'error',
|
|
47
|
+
'unicorn/no-anonymous-default-export': 'error',
|
|
48
|
+
'unicorn/no-array-callback-reference': 'off',
|
|
49
|
+
'unicorn/no-array-concat-in-loop': 'error',
|
|
50
|
+
'unicorn/no-array-fill-with-reference-type': 'error',
|
|
51
|
+
'unicorn/no-array-from-fill': 'error',
|
|
52
|
+
'unicorn/no-array-front-mutation': 'off',
|
|
53
|
+
'unicorn/no-array-method-this-argument': 'error',
|
|
54
|
+
'unicorn/no-array-reduce': 'off',
|
|
55
|
+
'unicorn/no-array-reverse': 'error',
|
|
56
|
+
'unicorn/no-array-sort': 'error',
|
|
57
|
+
'unicorn/no-array-sort-for-min-max': 'error',
|
|
58
|
+
'unicorn/no-array-splice': 'error',
|
|
59
|
+
'unicorn/no-asterisk-prefix-in-documentation-comments': 'off',
|
|
60
|
+
'unicorn/no-await-expression-member': 'error',
|
|
61
|
+
'unicorn/no-await-in-promise-methods': 'error',
|
|
62
|
+
'unicorn/no-blob-to-file': 'error',
|
|
63
|
+
'unicorn/no-boolean-sort-comparator': 'error',
|
|
64
|
+
'unicorn/no-break-in-nested-loop': 'error',
|
|
65
|
+
'unicorn/no-canvas-to-image': 'error',
|
|
66
|
+
'unicorn/no-chained-comparison': 'error',
|
|
67
|
+
'unicorn/no-collection-bracket-access': 'error',
|
|
68
|
+
'unicorn/no-computed-property-existence-check': 'error',
|
|
69
|
+
'unicorn/no-confusing-array-splice': 'error',
|
|
70
|
+
'unicorn/no-confusing-array-with': 'error',
|
|
71
|
+
'unicorn/no-console-spaces': 'error',
|
|
72
|
+
'unicorn/no-constant-zero-expression': 'error',
|
|
73
|
+
'unicorn/no-declarations-before-early-exit': 'error',
|
|
74
|
+
'unicorn/no-document-cookie': 'error',
|
|
75
|
+
'unicorn/no-double-comparison': 'error',
|
|
76
|
+
'unicorn/no-duplicate-if-branches': 'error',
|
|
77
|
+
'unicorn/no-duplicate-logical-operands': 'error',
|
|
78
|
+
'unicorn/no-duplicate-loops': 'error',
|
|
79
|
+
'unicorn/no-duplicate-set-values': 'error',
|
|
80
|
+
'unicorn/no-empty-file': 'error',
|
|
81
|
+
'unicorn/no-error-property-assignment': 'error',
|
|
82
|
+
'unicorn/no-exports-in-scripts': 'error',
|
|
83
|
+
'unicorn/no-for-each': 'error',
|
|
84
|
+
'unicorn/no-for-loop': 'error',
|
|
85
|
+
'unicorn/no-global-object-property-assignment': 'error',
|
|
86
|
+
'unicorn/no-immediate-mutation': 'error',
|
|
87
|
+
'unicorn/no-impossible-length-comparison': 'error',
|
|
88
|
+
'unicorn/no-incorrect-query-selector': 'error',
|
|
89
|
+
'unicorn/no-incorrect-template-string-interpolation': 'error',
|
|
90
|
+
'unicorn/no-instanceof-builtins': 'error',
|
|
91
|
+
'unicorn/no-invalid-argument-count': 'error',
|
|
92
|
+
'unicorn/no-invalid-character-comparison': 'error',
|
|
93
|
+
'unicorn/no-invalid-fetch-options': 'error',
|
|
94
|
+
'unicorn/no-invalid-file-input-accept': 'off',
|
|
95
|
+
'unicorn/no-invalid-remove-event-listener': 'error',
|
|
96
|
+
'unicorn/no-invalid-well-known-symbol-methods': 'error',
|
|
97
|
+
'unicorn/no-keyword-prefix': 'off',
|
|
98
|
+
'unicorn/no-late-current-target-access': 'error',
|
|
99
|
+
'unicorn/no-late-event-control': 'error',
|
|
100
|
+
'unicorn/no-lonely-if': 'error',
|
|
101
|
+
'unicorn/no-loop-iterable-mutation': 'error',
|
|
102
|
+
'unicorn/no-magic-array-flat-depth': 'error',
|
|
103
|
+
'unicorn/no-manually-wrapped-comments': 'off',
|
|
104
|
+
'unicorn/no-mismatched-map-key': 'error',
|
|
105
|
+
'unicorn/no-misrefactored-assignment': 'error',
|
|
106
|
+
'unicorn/no-named-default': 'error',
|
|
107
|
+
'unicorn/no-negated-array-predicate': 'error',
|
|
108
|
+
'unicorn/no-negated-comparison': 'error',
|
|
109
|
+
'unicorn/no-negated-condition': 'error',
|
|
110
|
+
'unicorn/no-negation-in-equality-check': 'error',
|
|
111
|
+
'unicorn/no-nested-ternary': 'off',
|
|
112
|
+
'unicorn/no-new-array': 'error',
|
|
113
|
+
'unicorn/no-new-buffer': 'error',
|
|
114
|
+
'unicorn/no-non-function-verb-prefix': 'error',
|
|
115
|
+
'unicorn/no-nonstandard-builtin-properties': 'error',
|
|
116
|
+
'unicorn/no-null': 'off',
|
|
117
|
+
'unicorn/no-object-as-default-parameter': 'error',
|
|
118
|
+
'unicorn/no-object-methods-with-collections': 'error',
|
|
119
|
+
'unicorn/no-optional-chaining-on-undeclared-variable': 'error',
|
|
120
|
+
'unicorn/no-process-exit': 'off',
|
|
121
|
+
'unicorn/no-redundant-comparison': 'error',
|
|
122
|
+
'unicorn/no-return-array-push': 'error',
|
|
123
|
+
'unicorn/no-selector-as-dom-name': 'error',
|
|
124
|
+
'unicorn/no-single-promise-in-promise-methods': 'error',
|
|
125
|
+
'unicorn/no-static-only-class': 'error',
|
|
126
|
+
'unicorn/no-subtraction-comparison': 'error',
|
|
127
|
+
'unicorn/no-thenable': 'error',
|
|
128
|
+
'unicorn/no-this-assignment': 'error',
|
|
129
|
+
'unicorn/no-this-outside-of-class': 'error',
|
|
130
|
+
'unicorn/no-top-level-assignment-in-function': 'error',
|
|
131
|
+
'unicorn/no-top-level-side-effects': 'off',
|
|
132
|
+
'unicorn/no-typeof-undefined': 'error',
|
|
133
|
+
'unicorn/no-uncalled-method': 'error',
|
|
134
|
+
'unicorn/no-undeclared-class-members': 'error',
|
|
135
|
+
'unicorn/no-unnecessary-array-flat-depth': 'error',
|
|
136
|
+
'unicorn/no-unnecessary-array-splice-count': 'error',
|
|
137
|
+
'unicorn/no-unnecessary-await': 'error',
|
|
138
|
+
'unicorn/no-unnecessary-boolean-comparison': 'error',
|
|
139
|
+
'unicorn/no-unnecessary-global-this': 'error',
|
|
140
|
+
'unicorn/no-unnecessary-nested-ternary': 'error',
|
|
141
|
+
'unicorn/no-unnecessary-polyfills': 'error',
|
|
142
|
+
'unicorn/no-unnecessary-slice-end': 'error',
|
|
143
|
+
'unicorn/no-unnecessary-splice': 'error',
|
|
144
|
+
'unicorn/no-unreadable-array-destructuring': 'error',
|
|
145
|
+
'unicorn/no-unreadable-for-of-expression': 'error',
|
|
146
|
+
'unicorn/no-unreadable-iife': 'error',
|
|
147
|
+
'unicorn/no-unreadable-new-expression': 'off',
|
|
148
|
+
'unicorn/no-unreadable-object-destructuring': 'error',
|
|
149
|
+
'unicorn/no-unsafe-buffer-conversion': 'error',
|
|
150
|
+
'unicorn/no-unsafe-dom-html': 'off',
|
|
151
|
+
'unicorn/no-unsafe-property-key': 'error',
|
|
152
|
+
'unicorn/no-unsafe-string-replacement': 'error',
|
|
153
|
+
'unicorn/no-unused-array-method-return': 'error',
|
|
154
|
+
'unicorn/no-unused-properties': 'off',
|
|
155
|
+
'unicorn/no-useless-boolean-cast': 'error',
|
|
156
|
+
'unicorn/no-useless-coercion': 'error',
|
|
157
|
+
'unicorn/no-useless-collection-argument': 'error',
|
|
158
|
+
'unicorn/no-useless-compound-assignment': 'error',
|
|
159
|
+
'unicorn/no-useless-concat': 'error',
|
|
160
|
+
'unicorn/no-useless-continue': 'error',
|
|
161
|
+
'unicorn/no-useless-delete-check': 'error',
|
|
162
|
+
'unicorn/no-useless-else': 'error',
|
|
163
|
+
'unicorn/no-useless-error-capture-stack-trace': 'error',
|
|
164
|
+
'unicorn/no-useless-fallback-in-spread': 'error',
|
|
165
|
+
'unicorn/no-useless-iterator-to-array': 'error',
|
|
166
|
+
'unicorn/no-useless-length-check': 'error',
|
|
167
|
+
'unicorn/no-useless-logical-operand': 'error',
|
|
168
|
+
'unicorn/no-useless-override': 'error',
|
|
169
|
+
'unicorn/no-useless-promise-resolve-reject': 'error',
|
|
170
|
+
'unicorn/no-useless-recursion': 'error',
|
|
171
|
+
'unicorn/no-useless-spread': 'error',
|
|
172
|
+
'unicorn/no-useless-switch-case': 'error',
|
|
173
|
+
'unicorn/no-useless-template-literals': 'error',
|
|
174
|
+
'unicorn/no-useless-undefined': 'error',
|
|
175
|
+
'unicorn/no-xor-as-exponentiation': 'error',
|
|
176
|
+
'unicorn/no-zero-fractions': 'error',
|
|
177
|
+
'unicorn/number-literal-case': 'error',
|
|
178
|
+
'unicorn/numeric-separators-style': 'error',
|
|
179
|
+
'unicorn/operator-assignment': 'error',
|
|
180
|
+
'unicorn/prefer-abort-signal-timeout': 'error',
|
|
181
|
+
'unicorn/prefer-add-event-listener': 'error',
|
|
182
|
+
'unicorn/prefer-add-event-listener-options': 'error',
|
|
183
|
+
'unicorn/prefer-aggregate-error': 'error',
|
|
184
|
+
'unicorn/prefer-array-find': 'error',
|
|
185
|
+
'unicorn/prefer-array-flat': 'error',
|
|
186
|
+
'unicorn/prefer-array-flat-map': 'error',
|
|
187
|
+
'unicorn/prefer-array-from-async': 'error',
|
|
188
|
+
'unicorn/prefer-array-from-map': 'error',
|
|
189
|
+
'unicorn/prefer-array-index-of': 'error',
|
|
190
|
+
'unicorn/prefer-array-iterable-methods': 'error',
|
|
191
|
+
'unicorn/prefer-array-last-methods': 'error',
|
|
192
|
+
'unicorn/prefer-array-slice': 'error',
|
|
193
|
+
'unicorn/prefer-array-some': 'error',
|
|
194
|
+
'unicorn/prefer-at': 'error',
|
|
195
|
+
'unicorn/prefer-await': 'error',
|
|
196
|
+
'unicorn/prefer-bigint-literals': 'error',
|
|
197
|
+
'unicorn/prefer-blob-reading-methods': 'error',
|
|
198
|
+
'unicorn/prefer-boolean-return': 'error',
|
|
199
|
+
'unicorn/prefer-class-fields': 'error',
|
|
200
|
+
'unicorn/prefer-classlist-toggle': 'error',
|
|
201
|
+
'unicorn/prefer-code-point': 'error',
|
|
202
|
+
'unicorn/prefer-continue': 'error',
|
|
203
|
+
'unicorn/prefer-date-now': 'error',
|
|
204
|
+
'unicorn/prefer-default-parameters': 'error',
|
|
205
|
+
'unicorn/prefer-direct-iteration': 'error',
|
|
206
|
+
'unicorn/prefer-dispose': 'off',
|
|
207
|
+
'unicorn/prefer-dom-node-append': 'error',
|
|
208
|
+
'unicorn/prefer-dom-node-html-methods': 'off',
|
|
209
|
+
'unicorn/prefer-dom-node-remove': 'error',
|
|
210
|
+
'unicorn/prefer-dom-node-replace-children': 'error',
|
|
211
|
+
'unicorn/prefer-dom-node-text-content': 'error',
|
|
212
|
+
'unicorn/prefer-early-return': 'error',
|
|
213
|
+
'unicorn/prefer-else-if': 'error',
|
|
214
|
+
'unicorn/prefer-error-is-error': 'off',
|
|
215
|
+
'unicorn/prefer-event-target': 'error',
|
|
216
|
+
'unicorn/prefer-export-from': 'error',
|
|
217
|
+
'unicorn/prefer-flat-math-min-max': 'error',
|
|
218
|
+
'unicorn/prefer-get-or-insert-computed': 'error',
|
|
219
|
+
'unicorn/prefer-global-number-constants': 'error',
|
|
220
|
+
'unicorn/prefer-global-this': 'error',
|
|
221
|
+
'unicorn/prefer-has-check': 'error',
|
|
222
|
+
'unicorn/prefer-hoisting-branch-code': 'error',
|
|
223
|
+
'unicorn/prefer-https': 'error',
|
|
224
|
+
'unicorn/prefer-identifier-import-export-specifiers': 'error',
|
|
225
|
+
'unicorn/prefer-import-meta-properties': 'off',
|
|
226
|
+
'unicorn/prefer-includes': 'error',
|
|
227
|
+
'unicorn/prefer-includes-over-repeated-comparisons': 'error',
|
|
228
|
+
'unicorn/prefer-iterable-in-constructor': 'error',
|
|
229
|
+
'unicorn/prefer-iterator-concat': 'off',
|
|
230
|
+
'unicorn/prefer-iterator-to-array': 'error',
|
|
231
|
+
'unicorn/prefer-iterator-to-array-at-end': 'error',
|
|
232
|
+
'unicorn/prefer-keyboard-event-key': 'error',
|
|
233
|
+
'unicorn/prefer-location-assign': 'error',
|
|
234
|
+
'unicorn/prefer-logical-operator-over-ternary': 'error',
|
|
235
|
+
'unicorn/prefer-map-from-entries': 'error',
|
|
236
|
+
'unicorn/prefer-math-abs': 'error',
|
|
237
|
+
'unicorn/prefer-math-constants': 'error',
|
|
238
|
+
'unicorn/prefer-math-min-max': 'error',
|
|
239
|
+
'unicorn/prefer-math-trunc': 'error',
|
|
240
|
+
'unicorn/prefer-minimal-ternary': 'error',
|
|
241
|
+
'unicorn/prefer-modern-dom-apis': 'error',
|
|
242
|
+
'unicorn/prefer-modern-math-apis': 'error',
|
|
243
|
+
'unicorn/prefer-module': 'error',
|
|
244
|
+
'unicorn/prefer-native-coercion-functions': 'error',
|
|
245
|
+
'unicorn/prefer-negative-index': 'error',
|
|
246
|
+
'unicorn/prefer-node-protocol': 'off',
|
|
247
|
+
'unicorn/prefer-number-coercion': 'error',
|
|
248
|
+
'unicorn/prefer-number-is-safe-integer': 'error',
|
|
249
|
+
'unicorn/prefer-number-properties': 'error',
|
|
250
|
+
'unicorn/prefer-object-define-properties': 'error',
|
|
251
|
+
'unicorn/prefer-object-destructuring-defaults': 'error',
|
|
252
|
+
'unicorn/prefer-object-from-entries': 'error',
|
|
253
|
+
'unicorn/prefer-object-iterable-methods': 'error',
|
|
254
|
+
'unicorn/prefer-observer-apis': 'error',
|
|
255
|
+
'unicorn/prefer-optional-catch-binding': 'error',
|
|
256
|
+
'unicorn/prefer-path2d': 'error',
|
|
257
|
+
'unicorn/prefer-private-class-fields': 'error',
|
|
258
|
+
'unicorn/prefer-promise-try': 'error',
|
|
259
|
+
'unicorn/prefer-promise-with-resolvers': 'error',
|
|
260
|
+
'unicorn/prefer-prototype-methods': 'error',
|
|
261
|
+
'unicorn/prefer-query-selector': 'error',
|
|
262
|
+
'unicorn/prefer-queue-microtask': 'error',
|
|
263
|
+
'unicorn/prefer-reflect-apply': 'error',
|
|
264
|
+
'unicorn/prefer-regexp-escape': 'off',
|
|
265
|
+
'unicorn/prefer-regexp-test': 'error',
|
|
266
|
+
'unicorn/prefer-response-static-json': 'error',
|
|
267
|
+
'unicorn/prefer-scoped-selector': 'error',
|
|
268
|
+
'unicorn/prefer-set-has': 'error',
|
|
269
|
+
'unicorn/prefer-set-methods': 'error',
|
|
270
|
+
'unicorn/prefer-set-size': 'error',
|
|
271
|
+
'unicorn/prefer-short-arrow-method': 'off',
|
|
272
|
+
'unicorn/prefer-simple-condition-first': 'error',
|
|
273
|
+
'unicorn/prefer-simple-sort-comparator': 'error',
|
|
274
|
+
'unicorn/prefer-single-array-predicate': 'error',
|
|
275
|
+
'unicorn/prefer-single-call': 'error',
|
|
276
|
+
'unicorn/prefer-single-object-destructuring': 'error',
|
|
277
|
+
'unicorn/prefer-single-replace': 'error',
|
|
278
|
+
'unicorn/prefer-smaller-scope': 'error',
|
|
279
|
+
'unicorn/prefer-split-limit': 'error',
|
|
280
|
+
'unicorn/prefer-spread': 'error',
|
|
281
|
+
'unicorn/prefer-string-match-all': 'error',
|
|
282
|
+
'unicorn/prefer-string-pad-start-end': 'error',
|
|
283
|
+
'unicorn/prefer-string-raw': 'error',
|
|
284
|
+
'unicorn/prefer-string-repeat': 'error',
|
|
285
|
+
'unicorn/prefer-string-replace-all': 'error',
|
|
286
|
+
'unicorn/prefer-string-slice': 'error',
|
|
287
|
+
'unicorn/prefer-string-starts-ends-with': 'error',
|
|
288
|
+
'unicorn/prefer-string-trim-start-end': 'error',
|
|
289
|
+
'unicorn/prefer-structured-clone': 'error',
|
|
290
|
+
'unicorn/prefer-switch': 'error',
|
|
291
|
+
'unicorn/prefer-temporal': 'off',
|
|
292
|
+
'unicorn/prefer-ternary': 'error',
|
|
293
|
+
'unicorn/prefer-toggle-attribute': 'error',
|
|
294
|
+
'unicorn/prefer-top-level-await': 'error',
|
|
295
|
+
'unicorn/prefer-type-error': 'error',
|
|
296
|
+
'unicorn/prefer-type-literal-last': 'error',
|
|
297
|
+
'unicorn/prefer-uint8array-base64': 'error',
|
|
298
|
+
'unicorn/prefer-unary-minus': 'error',
|
|
299
|
+
'unicorn/prefer-unicode-code-point-escapes': 'error',
|
|
300
|
+
'unicorn/prefer-url-can-parse': 'error',
|
|
301
|
+
'unicorn/prefer-url-href': 'error',
|
|
302
|
+
'unicorn/prefer-url-search-parameters': 'error',
|
|
303
|
+
'unicorn/prefer-while-loop-condition': 'error',
|
|
304
|
+
'unicorn/relative-url-style': 'error',
|
|
305
|
+
'unicorn/require-array-join-separator': 'error',
|
|
306
|
+
'unicorn/require-array-sort-compare': 'error',
|
|
307
|
+
'unicorn/require-css-escape': 'error',
|
|
308
|
+
'unicorn/require-module-attributes': 'error',
|
|
309
|
+
'unicorn/require-module-specifiers': 'error',
|
|
310
|
+
'unicorn/require-number-to-fixed-digits-argument': 'error',
|
|
311
|
+
'unicorn/require-passive-events': 'error',
|
|
312
|
+
'unicorn/require-post-message-target-origin': 'off',
|
|
313
|
+
'unicorn/require-proxy-trap-boolean-return': 'error',
|
|
314
|
+
'unicorn/string-content': 'off',
|
|
315
|
+
'unicorn/switch-case-braces': 'error',
|
|
316
|
+
'unicorn/switch-case-break-position': 'error',
|
|
317
|
+
'unicorn/template-indent': 'error',
|
|
318
|
+
'unicorn/text-encoding-identifier-case': 'error',
|
|
319
|
+
'unicorn/throw-new-error': 'error',
|
|
320
|
+
'unicorn/try-complexity': 'off'
|
|
321
|
+
};
|
package/src/react.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import eslintReact from '@eslint-react/eslint-plugin';
|
|
2
|
+
import reactHooks from 'eslint-plugin-react-hooks';
|
|
3
|
+
import globals from 'globals';
|
|
4
|
+
|
|
5
|
+
import base from '#src/index.js';
|
|
6
|
+
import {rules as pluginReactHooksRules} from '#src/plugins/react-hooks.js';
|
|
7
|
+
import {rules as pluginReactRules} from '#src/plugins/react.js';
|
|
8
|
+
import {rules as jsxStylisticRules} from '#src/rules/jsx-stylistic.js';
|
|
9
|
+
|
|
10
|
+
export default [
|
|
11
|
+
...base,
|
|
12
|
+
{
|
|
13
|
+
// Lint JSX files in addition to the standard JS extensions. The React rules
|
|
14
|
+
// themselves apply to all JS-family files, since components also live in
|
|
15
|
+
// plain `.js` files. (`.tsx` belongs to the separate TypeScript config.)
|
|
16
|
+
files: ['**/*.js', '**/*.cjs', '**/*.mjs', '**/*.jsx'],
|
|
17
|
+
languageOptions: {
|
|
18
|
+
globals: {
|
|
19
|
+
...globals.browser
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
name: '@ololoepepe/eslint-config/react',
|
|
23
|
+
plugins: {
|
|
24
|
+
'@eslint-react': eslintReact,
|
|
25
|
+
'react-hooks': reactHooks
|
|
26
|
+
},
|
|
27
|
+
rules: {
|
|
28
|
+
...jsxStylisticRules,
|
|
29
|
+
...pluginReactRules,
|
|
30
|
+
...pluginReactHooksRules
|
|
31
|
+
},
|
|
32
|
+
settings: {
|
|
33
|
+
'react-x': {
|
|
34
|
+
importSource: 'react',
|
|
35
|
+
polymorphicPropName: 'as',
|
|
36
|
+
version: 'detect'
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
];
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
export const rules = {
|
|
2
|
+
'accessor-pairs': [
|
|
3
|
+
'warn',
|
|
4
|
+
{
|
|
5
|
+
enforceForClassMembers: true,
|
|
6
|
+
getWithoutSet: false,
|
|
7
|
+
setWithoutGet: true
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
'array-callback-return': [
|
|
11
|
+
'error',
|
|
12
|
+
{
|
|
13
|
+
allowImplicit: false,
|
|
14
|
+
checkForEach: false
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
'arrow-body-style': [
|
|
18
|
+
'error',
|
|
19
|
+
'as-needed'
|
|
20
|
+
],
|
|
21
|
+
'block-scoped-var': 'error',
|
|
22
|
+
camelcase: [
|
|
23
|
+
'error',
|
|
24
|
+
{
|
|
25
|
+
ignoreDestructuring: false,
|
|
26
|
+
ignoreGlobals: true,
|
|
27
|
+
ignoreImports: false,
|
|
28
|
+
properties: 'never'
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
'capitalized-comments': [
|
|
32
|
+
'error',
|
|
33
|
+
'always',
|
|
34
|
+
{
|
|
35
|
+
ignoreConsecutiveComments: true,
|
|
36
|
+
ignoreInlineComments: false,
|
|
37
|
+
ignorePattern: 'webpackChunkName'
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
'class-methods-use-this': 'off',
|
|
41
|
+
complexity: [
|
|
42
|
+
'warn',
|
|
43
|
+
20
|
|
44
|
+
],
|
|
45
|
+
'consistent-return': 'off',
|
|
46
|
+
'consistent-this': [
|
|
47
|
+
'error',
|
|
48
|
+
'self'
|
|
49
|
+
],
|
|
50
|
+
'constructor-super': 'error',
|
|
51
|
+
curly: [
|
|
52
|
+
'error',
|
|
53
|
+
'all'
|
|
54
|
+
],
|
|
55
|
+
'default-case': [
|
|
56
|
+
'error',
|
|
57
|
+
{
|
|
58
|
+
commentPattern: String.raw`^skip\sdefault`
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
'default-case-last': 'error',
|
|
62
|
+
'default-param-last': 'error',
|
|
63
|
+
'dot-notation': [
|
|
64
|
+
'error',
|
|
65
|
+
{
|
|
66
|
+
allowKeywords: true
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
eqeqeq: [
|
|
70
|
+
'error',
|
|
71
|
+
'always'
|
|
72
|
+
],
|
|
73
|
+
'for-direction': 'error',
|
|
74
|
+
'func-name-matching': [
|
|
75
|
+
'warn',
|
|
76
|
+
'always'
|
|
77
|
+
],
|
|
78
|
+
'func-names': [
|
|
79
|
+
'error',
|
|
80
|
+
'never',
|
|
81
|
+
{
|
|
82
|
+
generators: 'never'
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
'func-style': [
|
|
86
|
+
'error',
|
|
87
|
+
'declaration',
|
|
88
|
+
{
|
|
89
|
+
allowArrowFunctions: true
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
'getter-return': [
|
|
93
|
+
'error',
|
|
94
|
+
{
|
|
95
|
+
allowImplicit: false
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
'grouped-accessor-pairs': [
|
|
99
|
+
'error',
|
|
100
|
+
'getBeforeSet'
|
|
101
|
+
],
|
|
102
|
+
'guard-for-in': 'error',
|
|
103
|
+
'id-denylist': 'off',
|
|
104
|
+
'id-length': 'off',
|
|
105
|
+
'id-match': 'off',
|
|
106
|
+
'init-declarations': [
|
|
107
|
+
'error',
|
|
108
|
+
'always'
|
|
109
|
+
],
|
|
110
|
+
'logical-assignment-operators': [
|
|
111
|
+
'error',
|
|
112
|
+
'always',
|
|
113
|
+
{
|
|
114
|
+
enforceForIfStatements: false
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
'max-classes-per-file': 'off',
|
|
118
|
+
'max-depth': [
|
|
119
|
+
'warn',
|
|
120
|
+
5
|
|
121
|
+
],
|
|
122
|
+
'max-lines': [
|
|
123
|
+
'warn',
|
|
124
|
+
{
|
|
125
|
+
max: 500,
|
|
126
|
+
skipBlankLines: true,
|
|
127
|
+
skipComments: true
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
'max-lines-per-function': [
|
|
131
|
+
'warn',
|
|
132
|
+
{
|
|
133
|
+
IIFEs: true,
|
|
134
|
+
max: 100,
|
|
135
|
+
skipBlankLines: true,
|
|
136
|
+
skipComments: true
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
'max-nested-callbacks': [
|
|
140
|
+
'warn',
|
|
141
|
+
5
|
|
142
|
+
],
|
|
143
|
+
'max-params': [
|
|
144
|
+
'warn',
|
|
145
|
+
4
|
|
146
|
+
],
|
|
147
|
+
'max-statements': 'off',
|
|
148
|
+
'new-cap': [
|
|
149
|
+
'error',
|
|
150
|
+
{
|
|
151
|
+
capIsNew: true,
|
|
152
|
+
newIsCap: true,
|
|
153
|
+
properties: true
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
'object-shorthand': [
|
|
157
|
+
'error',
|
|
158
|
+
'always',
|
|
159
|
+
{
|
|
160
|
+
avoidExplicitReturnArrows: false,
|
|
161
|
+
avoidQuotes: true,
|
|
162
|
+
ignoreConstructors: false
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
'one-var': [
|
|
166
|
+
'error',
|
|
167
|
+
'never'
|
|
168
|
+
],
|
|
169
|
+
'operator-assignment': [
|
|
170
|
+
'error',
|
|
171
|
+
'always'
|
|
172
|
+
],
|
|
173
|
+
'prefer-arrow-callback': [
|
|
174
|
+
'error',
|
|
175
|
+
{
|
|
176
|
+
allowNamedFunctions: false,
|
|
177
|
+
allowUnboundThis: true
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
'prefer-const': [
|
|
181
|
+
'error',
|
|
182
|
+
{
|
|
183
|
+
destructuring: 'all',
|
|
184
|
+
ignoreReadBeforeAssign: true
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
'prefer-destructuring': [
|
|
188
|
+
'error',
|
|
189
|
+
{
|
|
190
|
+
array: true,
|
|
191
|
+
object: true
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
enforceForRenamedProperties: false
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
'prefer-exponentiation-operator': 'error',
|
|
198
|
+
'prefer-named-capture-group': 'off',
|
|
199
|
+
'prefer-numeric-literals': 'error',
|
|
200
|
+
'prefer-object-has-own': 'off',
|
|
201
|
+
'prefer-object-spread': 'error',
|
|
202
|
+
'prefer-promise-reject-errors': [
|
|
203
|
+
'error',
|
|
204
|
+
{
|
|
205
|
+
allowEmptyReject: false
|
|
206
|
+
}
|
|
207
|
+
],
|
|
208
|
+
'prefer-regex-literals': [
|
|
209
|
+
'error',
|
|
210
|
+
{
|
|
211
|
+
disallowRedundantWrapping: true
|
|
212
|
+
}
|
|
213
|
+
],
|
|
214
|
+
'prefer-rest-params': 'error',
|
|
215
|
+
'prefer-spread': 'error',
|
|
216
|
+
'prefer-template': 'error',
|
|
217
|
+
'preserve-caught-error': 'off',
|
|
218
|
+
radix: [
|
|
219
|
+
'error',
|
|
220
|
+
'as-needed'
|
|
221
|
+
],
|
|
222
|
+
'require-atomic-updates': 'error',
|
|
223
|
+
'require-await': 'error',
|
|
224
|
+
'require-unicode-regexp': 'off',
|
|
225
|
+
'require-yield': 'off',
|
|
226
|
+
'sort-imports': 'off',
|
|
227
|
+
'sort-keys': 'off',
|
|
228
|
+
'sort-vars': [
|
|
229
|
+
'error',
|
|
230
|
+
{
|
|
231
|
+
ignoreCase: true
|
|
232
|
+
}
|
|
233
|
+
],
|
|
234
|
+
strict: [
|
|
235
|
+
'error',
|
|
236
|
+
'never'
|
|
237
|
+
],
|
|
238
|
+
'symbol-description': 'error',
|
|
239
|
+
'unicode-bom': [
|
|
240
|
+
'error',
|
|
241
|
+
'never'
|
|
242
|
+
],
|
|
243
|
+
'use-isnan': [
|
|
244
|
+
'error',
|
|
245
|
+
{
|
|
246
|
+
enforceForIndexOf: true,
|
|
247
|
+
enforceForSwitchCase: true
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
'valid-typeof': [
|
|
251
|
+
'error',
|
|
252
|
+
{
|
|
253
|
+
requireStringLiterals: false
|
|
254
|
+
}
|
|
255
|
+
],
|
|
256
|
+
'vars-on-top': 'error',
|
|
257
|
+
yoda: [
|
|
258
|
+
'error',
|
|
259
|
+
'never'
|
|
260
|
+
]
|
|
261
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// JSX formatting rules. These live in @stylistic (the base config turns them
|
|
2
|
+
// off because it is environment-neutral); the React layer turns them on with
|
|
3
|
+
// the project's JSX style. JSX indentation is handled by @stylistic/indent in
|
|
4
|
+
// the base, so there is no separate jsx-indent rule here.
|
|
5
|
+
export const rules = {
|
|
6
|
+
'@stylistic/jsx-child-element-spacing': 'error',
|
|
7
|
+
'@stylistic/jsx-closing-bracket-location': ['error', {
|
|
8
|
+
nonEmpty: 'tag-aligned',
|
|
9
|
+
selfClosing: false
|
|
10
|
+
}],
|
|
11
|
+
'@stylistic/jsx-closing-tag-location': 'error',
|
|
12
|
+
'@stylistic/jsx-curly-brace-presence': ['error', {
|
|
13
|
+
children: 'never',
|
|
14
|
+
propElementValues: 'always',
|
|
15
|
+
props: 'never'
|
|
16
|
+
}],
|
|
17
|
+
'@stylistic/jsx-curly-newline': ['error', {
|
|
18
|
+
multiline: 'consistent',
|
|
19
|
+
singleline: 'forbid'
|
|
20
|
+
}],
|
|
21
|
+
'@stylistic/jsx-curly-spacing': ['error', {
|
|
22
|
+
when: 'never'
|
|
23
|
+
}],
|
|
24
|
+
'@stylistic/jsx-equals-spacing': ['error', 'never'],
|
|
25
|
+
'@stylistic/jsx-first-prop-new-line': ['error', 'multiline-multiprop'],
|
|
26
|
+
'@stylistic/jsx-function-call-newline': ['error', 'multiline'],
|
|
27
|
+
'@stylistic/jsx-indent-props': ['error', 2],
|
|
28
|
+
'@stylistic/jsx-max-props-per-line': ['error', {
|
|
29
|
+
maximum: 1,
|
|
30
|
+
when: 'multiline'
|
|
31
|
+
}],
|
|
32
|
+
'@stylistic/jsx-newline': ['error', {
|
|
33
|
+
allowMultilines: false,
|
|
34
|
+
prevent: true
|
|
35
|
+
}],
|
|
36
|
+
'@stylistic/jsx-pascal-case': ['error', {
|
|
37
|
+
allowAllCaps: false,
|
|
38
|
+
allowLeadingUnderscore: false,
|
|
39
|
+
allowNamespace: false
|
|
40
|
+
}],
|
|
41
|
+
'@stylistic/jsx-self-closing-comp': ['error', {
|
|
42
|
+
component: true,
|
|
43
|
+
html: true
|
|
44
|
+
}],
|
|
45
|
+
'@stylistic/jsx-tag-spacing': ['error', {
|
|
46
|
+
afterOpening: 'never',
|
|
47
|
+
beforeClosing: 'never',
|
|
48
|
+
beforeSelfClosing: 'never',
|
|
49
|
+
closingSlash: 'never'
|
|
50
|
+
}],
|
|
51
|
+
'@stylistic/jsx-wrap-multilines': ['error', {
|
|
52
|
+
arrow: 'parens-new-line',
|
|
53
|
+
assignment: 'parens-new-line',
|
|
54
|
+
condition: 'parens-new-line',
|
|
55
|
+
declaration: 'parens-new-line',
|
|
56
|
+
logical: 'parens-new-line',
|
|
57
|
+
prop: 'parens-new-line',
|
|
58
|
+
return: 'parens-new-line'
|
|
59
|
+
}]
|
|
60
|
+
};
|