|
1 | 1 | { |
2 | 2 | "$schema": "./node_modules/oxlint/configuration_schema.json", |
3 | | - "categories": { |
4 | | - "correctness": "deny", |
5 | | - "nursery": "off", |
6 | | - "pedantic": "deny", |
7 | | - "perf": "deny", |
8 | | - "restriction": "deny", |
9 | | - "style": "deny", |
10 | | - "suspicious": "deny" |
11 | | - }, |
12 | 3 | "ignorePatterns": [ |
13 | 4 | "**/app.config.d.ts", |
14 | 5 | "**/package.config.d.ts", |
|
17 | 8 | "*.d.ts", |
18 | 9 | "svgo.config.mjs" |
19 | 10 | ], |
| 11 | + "categories": { |
| 12 | + "correctness": "deny", |
| 13 | + "style": "deny", |
| 14 | + "suspicious": "deny", |
| 15 | + "perf": "deny", |
| 16 | + "pedantic": "deny", |
| 17 | + "restriction": "deny", |
| 18 | + "nursery": "off" |
| 19 | + }, |
| 20 | + "plugins": [ |
| 21 | + "import", |
| 22 | + "node", |
| 23 | + "oxc", |
| 24 | + "react", |
| 25 | + "typescript", |
| 26 | + "unicorn", |
| 27 | + "jsx-a11y" |
| 28 | + ], |
20 | 29 | "overrides": [ |
21 | 30 | { |
22 | | - "files": [ |
23 | | - "**/__stories__/**/*.{ts,tsx}", |
24 | | - "**/__tests__/**/*.{ts,tsx}", |
25 | | - ".storybook/**/*.{ts,tsx}", |
26 | | - "exemples/**", |
27 | | - ".storybook/**/*.{ts,tsx}" |
28 | | - ], |
| 31 | + "files": ["**/__stories__/**/*.{ts,tsx}", "**/__tests__/**/*.{ts,tsx}", ".storybook/**/*.{ts,tsx}"], |
29 | 32 | "rules": { |
30 | | - "eslint/no-alert": "off", |
31 | 33 | "eslint/no-console": "off", |
| 34 | + "eslint/no-alert": "off", |
32 | 35 | "import/no-anonymous-default-export": "off", |
33 | | - "import/no-named-export": "off", |
34 | | - "import/no-unassigned-import": "off", |
35 | | - "react/jsx-pascal-case": "off", |
36 | | - "react/only-export-components": "off" |
| 36 | + "import/no-unassigned-import": "off" |
37 | 37 | } |
38 | 38 | }, |
39 | 39 | { |
|
45 | 45 | "setup.ts", |
46 | 46 | "vitest.setup.ts", |
47 | 47 | "**/vitest.setup.ts", |
48 | | - "*.config.ts", |
49 | | - "**/vitest/setup.ts" |
| 48 | + "*.config.ts" |
50 | 49 | ], |
51 | 50 | "plugins": ["import", "oxc", "vitest"], |
52 | 51 | "rules": { |
53 | 52 | "@typescript-eslint/consistent-type-imports": "off", |
| 53 | + "import/no-namespace": "off", |
54 | 54 | "import/export": "off", |
55 | 55 | "import/no-anonymous-default-export": "off", |
56 | | - "import/no-named-export": "off", |
57 | | - "import/no-namespace": "off", |
58 | 56 | "import/no-unassigned-import": "off", |
59 | 57 | "jsx_a11y/label-has-associated-control": "off", |
60 | | - "no-console": "off", |
61 | | - "node/no-process-env": "off", |
62 | | - "vitest/prefer-lowercase-title": "error" |
63 | | - } |
64 | | - }, |
65 | | - { |
66 | | - "files": ["e2e/**/*.{ts,tsx}"], |
67 | | - "rules": { |
68 | | - "node/no-process-env": "off" |
| 58 | + "vitest/prefer-lowercase-title": "error", |
| 59 | + "no-console": "off" |
69 | 60 | } |
70 | 61 | } |
71 | 62 | ], |
72 | | - "plugins": [ |
73 | | - "import", |
74 | | - "node", |
75 | | - "oxc", |
76 | | - "react", |
77 | | - "typescript", |
78 | | - "unicorn", |
79 | | - "jsx-a11y" |
80 | | - ], |
81 | 63 | "rules": { |
| 64 | + "jsx_a11y/label-has-associated-control": "off", |
| 65 | + "jsx_a11y/no-autofocus": "off", |
| 66 | + "jsx_a11y/prefer-tag-over-role": "off", |
| 67 | + "import/default": "error", |
| 68 | + "import/export": "off", |
| 69 | + "import/exports-last": "off", |
| 70 | + "import/max-dependencies": "off", |
| 71 | + "import/named": "error", |
| 72 | + "import/no-amd": "error", |
| 73 | + "import/consistent-type-specifier-style": "error", |
| 74 | + "import/group-exports": "off", |
| 75 | + "import/import-no-namespace": "off", |
| 76 | + "import/namespace": "off", |
| 77 | + "import/no-cycle": "error", |
| 78 | + "import/no-default-export": "off", |
| 79 | + "import/no-duplicates": "error", |
| 80 | + "import/no-named-as-default-member": "error", |
| 81 | + "import/no-named-as-default": "error", |
| 82 | + "import/no-self-import": "error", |
| 83 | + "import/no-unassigned-import": "off", |
| 84 | + "import/no-unused-modules": "off", |
| 85 | + "import/prefer-default-export": "off", |
| 86 | + "import/no-namespace": "off", |
| 87 | + "import/unambiguous": "error", |
82 | 88 | "@typescript-eslint/adjacent-overload-signatures": "error", |
83 | 89 | "@typescript-eslint/array-type": "error", |
84 | 90 | "@typescript-eslint/ban-ts-comment": "error", |
|
91 | 97 | "@typescript-eslint/no-duplicate-enum-values": "error", |
92 | 98 | "@typescript-eslint/no-empty-interface": "error", |
93 | 99 | "@typescript-eslint/no-explicit-any": "error", |
94 | | - "@typescript-eslint/no-extra-non-null-assertion": "error", |
95 | 100 | "@typescript-eslint/no-magic-numbers": "off", |
| 101 | + "@typescript-eslint/no-extra-non-null-assertion": "error", |
96 | 102 | "@typescript-eslint/no-misused-new": "error", |
97 | 103 | "@typescript-eslint/no-namespace": "error", |
98 | 104 | "@typescript-eslint/no-non-null-asserted-optional-chain": "error", |
99 | 105 | "@typescript-eslint/no-non-null-assertion": "off", |
100 | 106 | "@typescript-eslint/no-this-alias": "error", |
101 | 107 | "@typescript-eslint/no-unnecessary-type-constraint": "error", |
102 | 108 | "@typescript-eslint/no-unsafe-declaration-merging": "error", |
103 | | - "@typescript-eslint/no-unsafe-member-access": "error", |
104 | 109 | "@typescript-eslint/no-var-requires": "error", |
105 | 110 | "@typescript-eslint/prefer-as-const": "error", |
| 111 | + "@typescript-eslint/no-unsafe-member-access": "error", |
106 | 112 | "@typescript-eslint/prefer-enum-initializers": "off", |
107 | 113 | "@typescript-eslint/prefer-for-of": "error", |
108 | 114 | "@typescript-eslint/prefer-function-type": "off", |
109 | 115 | "@typescript-eslint/prefer-literal-enum-member": "off", |
110 | 116 | "@typescript-eslint/prefer-ts-expect-error": "off", |
111 | 117 | "@typescript-eslint/triple-slash-reference": "error", |
112 | | - "arrow-body-style": "off", |
| 118 | + "eslint/yoda": "error", |
113 | 119 | "eslint/array-callback-return": "error", |
114 | 120 | "eslint/constructor-super": "error", |
115 | 121 | "eslint/default-case-last": "error", |
116 | 122 | "eslint/default-param-last": "off", |
117 | 123 | "eslint/eqeqeq": "error", |
118 | 124 | "eslint/for-direction": "error", |
119 | | - "eslint/func-style": "off", |
120 | 125 | "eslint/getter-return": "error", |
121 | 126 | "eslint/guard-for-in": "error", |
122 | | - "eslint/id-length": "off", |
123 | | - "eslint/init-declarations": "off", |
124 | 127 | "eslint/max-classes-per-file": "error", |
125 | | - "eslint/max-depth": "off", |
126 | 128 | "eslint/max-lines": "off", |
127 | | - "eslint/max-lines-per-function": "off", |
128 | | - "eslint/max-nested-callbacks": "off", |
129 | 129 | "eslint/max-params": "off", |
130 | 130 | "eslint/no-array-constructor": "error", |
131 | 131 | "eslint/no-async-promise-executor": "error", |
132 | 132 | "eslint/no-await-in-loop": "off", |
133 | 133 | "eslint/no-bitwise": "error", |
134 | 134 | "eslint/no-caller": "error", |
| 135 | + "eslint/id-length": "off", |
135 | 136 | "eslint/no-case-declarations": "error", |
136 | 137 | "eslint/no-class-assign": "error", |
137 | 138 | "eslint/no-compare-neg-zero": "error", |
|
149 | 150 | "eslint/no-dupe-keys": "error", |
150 | 151 | "eslint/no-duplicate-case": "error", |
151 | 152 | "eslint/no-duplicate-imports": "off", |
152 | | - "eslint/no-empty": "error", |
153 | 153 | "eslint/no-empty-character-class": "error", |
154 | 154 | "eslint/no-empty-function": "off", |
155 | 155 | "eslint/no-empty-pattern": "error", |
156 | 156 | "eslint/no-empty-static-block": "error", |
| 157 | + "eslint/no-empty": "error", |
157 | 158 | "eslint/no-eq-null": "error", |
158 | 159 | "eslint/no-eval": "error", |
159 | 160 | "eslint/no-ex-assign": "error", |
|
194 | 195 | "eslint/no-unsafe-optional-chaining": "error", |
195 | 196 | "eslint/no-unused-labels": "error", |
196 | 197 | "eslint/no-unused-private-class-members": "error", |
| 198 | + "eslint/sort-keys": "off", |
| 199 | + "eslint/react-in-jsx-scope": "off", |
197 | 200 | "eslint/no-unused-vars": [ |
198 | 201 | "error", |
199 | 202 | { |
|
207 | 210 | "eslint/no-void": "error", |
208 | 211 | "eslint/no-with": "error", |
209 | 212 | "eslint/radix": "error", |
210 | | - "eslint/react-in-jsx-scope": "off", |
211 | 213 | "eslint/require-await": "off", |
212 | 214 | "eslint/require-yield": "error", |
213 | 215 | "eslint/sort-imports": [ |
|
217 | 219 | "memberSyntaxSortOrder": ["single", "multiple", "all", "none"] |
218 | 220 | } |
219 | 221 | ], |
220 | | - "eslint/sort-keys": "off", |
221 | 222 | "eslint/unicode-bom": "error", |
222 | 223 | "eslint/use-isnan": "error", |
223 | 224 | "eslint/valid-typeof": "error", |
224 | | - "eslint/yoda": "error", |
225 | | - "import/consistent-type-specifier-style": "error", |
226 | | - "import/default": "error", |
227 | | - "import/export": "off", |
228 | | - "import/exports-last": "off", |
229 | | - "import/group-exports": "off", |
230 | | - "import/import-no-namespace": "off", |
231 | | - "import/max-dependencies": "off", |
232 | | - "import/named": "error", |
233 | | - "import/namespace": "off", |
234 | | - "import/no-amd": "error", |
235 | | - "import/no-anonymous-default-export": "off", |
236 | | - "import/no-cycle": "error", |
237 | | - "import/no-default-export": "off", |
238 | | - "import/no-duplicates": "error", |
239 | | - "import/no-named-as-default": "error", |
240 | | - "import/no-named-as-default-member": "error", |
241 | | - "import/no-named-export": "off", |
242 | | - "import/no-namespace": "off", |
243 | | - "import/no-self-import": "error", |
244 | | - "import/no-unassigned-import": "off", |
245 | | - "import/no-unused-modules": "off", |
246 | | - "import/prefer-default-export": "off", |
247 | | - "import/unambiguous": "error", |
248 | | - "jsx_a11y/label-has-associated-control": "off", |
249 | | - "jsx_a11y/no-autofocus": "off", |
250 | | - "jsx_a11y/prefer-tag-over-role": "off", |
| 225 | + "eslint/init-declarations": "off", |
| 226 | + "eslint/func-style": "off", |
| 227 | + "eslint/max-lines-per-function": "off", |
| 228 | + "eslint/max-nested-callbacks": "off", |
| 229 | + "eslint/max-depth": "off", |
251 | 230 | "oxc/bad-bitwise-operator": "error", |
252 | 231 | "oxc/no-accumulating-spread": "off", |
253 | 232 | "oxc/no-async-await": "off", |
254 | 233 | "oxc/no-barrel-file": "off", |
255 | 234 | "oxc/no-const-enum": "error", |
256 | 235 | "oxc/no-optional-chaining": "off", |
257 | 236 | "oxc/no-rest-spread-properties": "off", |
258 | | - "prefer-destructuring": "off", |
259 | | - "react_perf/jsx-no-jsx-as-prop": "error", |
260 | | - "react_perf/jsx-no-new-array-as-prop": "error", |
261 | | - "react_perf/jsx-no-new-function-as-props": "error", |
262 | | - "react_perf/jsx-no-new-object-as-prop": "error", |
263 | 237 | "react-perf/jsx-no-jsx-as-prop": "off", |
264 | 238 | "react-perf/jsx-no-new-array-as-prop": "off", |
265 | 239 | "react-perf/jsx-no-new-function-as-prop": "off", |
266 | 240 | "react-perf/jsx-no-new-object-as-prop": "off", |
| 241 | + "react_perf/jsx-no-jsx-as-prop": "error", |
| 242 | + "react_perf/jsx-no-new-array-as-prop": "error", |
| 243 | + "react_perf/jsx-no-new-function-as-props": "error", |
| 244 | + "react_perf/jsx-no-new-object-as-prop": "error", |
267 | 245 | "react/button-has-type": "off", |
268 | 246 | "react/exhaustive-deps": "error", |
269 | | - "react/iframe-missing-sandbox": "error", |
270 | 247 | "react/jsx-filename-extension": [ |
271 | 248 | "error", |
272 | 249 | { |
273 | 250 | "extensions": [".jsx", ".tsx"] |
274 | 251 | } |
275 | 252 | ], |
276 | | - "react/jsx-handler-names": "off", |
| 253 | + "react/iframe-missing-sandbox": "error", |
277 | 254 | "react/jsx-key": "error", |
278 | 255 | "react/jsx-no-comment-text-nodes": "error", |
279 | 256 | "react/jsx-no-duplicate-props": "error", |
280 | 257 | "react/jsx-no-target-blank": "off", |
281 | 258 | "react/jsx-no-undef": "error", |
282 | 259 | "react/jsx-no-useless-fragment": "off", |
283 | 260 | "react/no-children-prop": "error", |
284 | | - "react/no-danger": "off", |
285 | 261 | "react/no-dangerously-set-inner-html": "error", |
286 | 262 | "react/no-direct-mutation-state": "error", |
287 | 263 | "react/no-find-dom-node": "error", |
|
293 | 269 | "react/no-unknown-property": "error", |
294 | 270 | "react/react-in-jsx-scope": "off", |
295 | 271 | "react/require-render-return": "error", |
296 | | - "typescript/explicit-module-boundary-types": "off", |
| 272 | + "react/no-danger": "off", |
| 273 | + "unicorn/no-instanceof-builtins": "error", |
| 274 | + "unicorn/prefer-array-index-of": "off", |
| 275 | + "unicorn/prefer-array-find": "off", |
| 276 | + "unicorn/no-for-loop": "off", |
| 277 | + "unicorn/prefer-object-from-entries": "off", |
| 278 | + "unicorn/prefer-global-this": "off", |
297 | 279 | "unicorn/catch-error-name": "error", |
298 | 280 | "unicorn/empty-brace-spaces": "error", |
299 | 281 | "unicorn/error-message": "off", |
|
307 | 289 | "unicorn/no-array-reduce": "off", |
308 | 290 | "unicorn/no-await-expression-member": "off", |
309 | 291 | "unicorn/no-await-in-promise-methods": "off", |
| 292 | + "unicorn/prefer-set-has": "off", |
310 | 293 | "unicorn/no-console-spaces": "error", |
311 | 294 | "unicorn/no-document-cookie": "off", |
312 | 295 | "unicorn/no-empty-file": "error", |
313 | | - "unicorn/no-for-loop": "off", |
314 | 296 | "unicorn/no-hex-escape": "error", |
315 | 297 | "unicorn/no-instanceof-array": "error", |
316 | | - "unicorn/no-instanceof-builtins": "error", |
317 | 298 | "unicorn/no-invalid-remove-event-listener": "off", |
318 | 299 | "unicorn/no-lonely-if": "error", |
319 | 300 | "unicorn/no-magic-array-flat-depth": "off", |
|
342 | 323 | "unicorn/number-literal-case": "off", |
343 | 324 | "unicorn/numeric-separators-style": "off", |
344 | 325 | "unicorn/prefer-add-event-listener": "off", |
345 | | - "unicorn/prefer-array-find": "off", |
346 | 326 | "unicorn/prefer-array-flat": "error", |
347 | 327 | "unicorn/prefer-array-flat-map": "error", |
348 | | - "unicorn/prefer-array-index-of": "off", |
349 | 328 | "unicorn/prefer-array-some": "off", |
350 | 329 | "unicorn/prefer-blob-reading-methods": "off", |
351 | 330 | "unicorn/prefer-code-point": "off", |
|
355 | 334 | "unicorn/prefer-dom-node-remove": "off", |
356 | 335 | "unicorn/prefer-dom-node-text-content": "error", |
357 | 336 | "unicorn/prefer-event-target": "error", |
358 | | - "unicorn/prefer-global-this": "off", |
359 | 337 | "unicorn/prefer-includes": "error", |
360 | 338 | "unicorn/prefer-logical-operator-over-ternary": "off", |
361 | 339 | "unicorn/prefer-math-trunc": "error", |
|
364 | 342 | "unicorn/prefer-native-coercion-functions": "error", |
365 | 343 | "unicorn/prefer-node-protocol": "off", |
366 | 344 | "unicorn/prefer-number-properties": "error", |
367 | | - "unicorn/prefer-object-from-entries": "off", |
368 | 345 | "unicorn/prefer-optional-catch-binding": "error", |
369 | 346 | "unicorn/prefer-prototype-methods": "error", |
370 | 347 | "unicorn/prefer-query-selector": "off", |
371 | 348 | "unicorn/prefer-reflect-apply": "error", |
372 | 349 | "unicorn/prefer-regexp-test": "error", |
373 | | - "unicorn/prefer-set-has": "off", |
374 | 350 | "unicorn/prefer-set-size": "error", |
375 | 351 | "unicorn/prefer-spread": "error", |
376 | 352 | "unicorn/prefer-string-replace-all": "off", |
|
382 | 358 | "unicorn/require-number-to-fixed-digits-argument": "error", |
383 | 359 | "unicorn/switch-case-braces": "error", |
384 | 360 | "unicorn/text-encoding-identifier-case": "error", |
385 | | - "unicorn/throw-new-error": "error" |
| 361 | + "unicorn/throw-new-error": "error", |
| 362 | + "arrow-body-style": "off", |
| 363 | + "typescript/explicit-module-boundary-types": "off", |
| 364 | + "prefer-destructuring": "off", |
| 365 | + "import/no-anonymous-default-export": "off", |
| 366 | + "react/jsx-handler-names": "off" |
386 | 367 | }, |
387 | 368 | "settings": { |
388 | 369 | "jsx-a11y": { |
|
0 commit comments