eslint-config-setup 0.3.2 → 0.4.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.
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
3
  "plugins": [
4
- "typescript",
5
4
  "import",
6
5
  "unicorn",
7
6
  "jsdoc",
@@ -64,25 +63,25 @@
64
63
  "no-unsafe-optional-chaining": "error",
65
64
  "no-unused-labels": "error",
66
65
  "no-unused-private-class-members": "error",
67
- "no-unused-vars": [
68
- "error",
69
- {
70
- "args": "all",
71
- "argsIgnorePattern": "^_",
72
- "caughtErrors": "all",
73
- "caughtErrorsIgnorePattern": "^_",
74
- "destructuredArrayIgnorePattern": "^_",
75
- "varsIgnorePattern": "^_",
76
- "ignoreRestSiblings": true
77
- }
78
- ],
66
+ "no-unused-vars": "error",
79
67
  "no-useless-catch": "error",
80
68
  "no-useless-escape": "error",
81
69
  "no-with": "error",
82
70
  "preserve-caught-error": "error",
83
71
  "require-yield": "error",
84
- "use-isnan": "error",
85
- "valid-typeof": "error",
72
+ "use-isnan": [
73
+ "error",
74
+ {
75
+ "enforceForIndexOf": true,
76
+ "enforceForSwitchCase": true
77
+ }
78
+ ],
79
+ "valid-typeof": [
80
+ "error",
81
+ {
82
+ "requireStringLiterals": true
83
+ }
84
+ ],
86
85
  "accessor-pairs": [
87
86
  "error",
88
87
  {
@@ -105,7 +104,12 @@
105
104
  "getBeforeSet"
106
105
  ],
107
106
  "no-useless-rename": "error",
108
- "no-useless-computed-key": "error",
107
+ "no-useless-computed-key": [
108
+ "error",
109
+ {
110
+ "enforceForClassMembers": true
111
+ }
112
+ ],
109
113
  "no-eval": "error",
110
114
  "no-alert": "error",
111
115
  "no-caller": "error",
@@ -124,7 +128,12 @@
124
128
  "default-case-last": "error",
125
129
  "radix": "error",
126
130
  "yoda": "error",
127
- "no-sequences": "error",
131
+ "no-sequences": [
132
+ "error",
133
+ {
134
+ "allowInParentheses": false
135
+ }
136
+ ],
128
137
  "no-new": "error",
129
138
  "no-labels": "error",
130
139
  "no-extra-bind": "error",
@@ -132,100 +141,70 @@
132
141
  "no-useless-call": "error",
133
142
  "no-useless-concat": "error",
134
143
  "no-useless-return": "error",
144
+ "no-return-assign": [
145
+ "error",
146
+ "always"
147
+ ],
135
148
  "no-multi-str": "error",
136
- "no-var": "error",
137
- "prefer-const": [
149
+ "complexity": [
138
150
  "error",
139
- {
140
- "destructuring": "all"
141
- }
151
+ 10
142
152
  ],
143
- "prefer-object-has-own": "error",
144
- "prefer-object-spread": "error",
145
- "prefer-rest-params": "error",
146
- "prefer-spread": "error",
147
- "prefer-template": "error",
148
- "symbol-description": "error",
149
- "@typescript-eslint/ban-ts-comment": [
153
+ "max-depth": [
150
154
  "error",
151
- {
152
- "minimumDescriptionLength": 10
153
- }
155
+ 3
154
156
  ],
155
- "no-array-constructor": "error",
156
- "@typescript-eslint/no-duplicate-enum-values": "error",
157
- "@typescript-eslint/no-dynamic-delete": "error",
158
- "@typescript-eslint/no-empty-object-type": "error",
159
- "@typescript-eslint/no-explicit-any": "error",
160
- "@typescript-eslint/no-extra-non-null-assertion": "error",
161
- "@typescript-eslint/no-extraneous-class": "error",
162
- "@typescript-eslint/no-invalid-void-type": "error",
163
- "@typescript-eslint/no-misused-new": "error",
164
- "@typescript-eslint/no-namespace": "error",
165
- "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
166
- "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
167
- "@typescript-eslint/no-non-null-assertion": "error",
168
- "@typescript-eslint/no-require-imports": "error",
169
- "@typescript-eslint/no-this-alias": "error",
170
- "@typescript-eslint/no-unnecessary-type-constraint": "error",
171
- "@typescript-eslint/no-unsafe-declaration-merging": "error",
172
- "@typescript-eslint/no-unsafe-function-type": "error",
173
- "no-unused-expressions": "error",
174
- "no-useless-constructor": "error",
175
- "@typescript-eslint/no-wrapper-object-types": "error",
176
- "@typescript-eslint/prefer-as-const": "error",
177
- "@typescript-eslint/prefer-literal-enum-member": "error",
178
- "@typescript-eslint/prefer-namespace-keyword": "error",
179
- "@typescript-eslint/triple-slash-reference": "error",
180
- "@typescript-eslint/unified-signatures": "error",
181
- "@typescript-eslint/adjacent-overload-signatures": "error",
182
- "@typescript-eslint/array-type": [
157
+ "max-nested-callbacks": [
158
+ "error",
159
+ 2
160
+ ],
161
+ "max-params": [
162
+ "error",
163
+ 3
164
+ ],
165
+ "max-statements": [
166
+ "error",
167
+ 15
168
+ ],
169
+ "max-lines-per-function": [
183
170
  "error",
184
171
  {
185
- "default": "array-simple"
172
+ "max": 50,
173
+ "skipBlankLines": true,
174
+ "skipComments": true
186
175
  }
187
176
  ],
188
- "@typescript-eslint/ban-tslint-comment": "error",
189
- "@typescript-eslint/class-literal-property-style": "error",
190
- "@typescript-eslint/consistent-generic-constructors": "error",
191
- "@typescript-eslint/consistent-indexed-object-style": "error",
192
- "@typescript-eslint/consistent-type-assertions": "error",
193
- "@typescript-eslint/consistent-type-definitions": "error",
194
- "@typescript-eslint/no-confusing-non-null-assertion": "error",
195
- "no-empty-function": "error",
196
- "@typescript-eslint/no-inferrable-types": "error",
197
- "@typescript-eslint/prefer-for-of": "error",
198
- "@typescript-eslint/prefer-function-type": "error",
199
- "@typescript-eslint/consistent-type-imports": [
177
+ "max-lines": [
200
178
  "error",
201
179
  {
202
- "fixStyle": "inline-type-imports"
180
+ "max": 300,
181
+ "skipBlankLines": true,
182
+ "skipComments": true
203
183
  }
204
184
  ],
205
- "@typescript-eslint/no-import-type-side-effects": "error",
206
- "@typescript-eslint/no-useless-empty-export": "error",
207
- "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error",
208
- "no-shadow": [
185
+ "no-var": "error",
186
+ "prefer-const": [
209
187
  "error",
210
188
  {
211
- "hoist": "all",
212
- "allow": [
213
- "resolve",
214
- "reject",
215
- "done",
216
- "next",
217
- "error"
218
- ],
219
- "ignoreTypeValueShadow": true,
220
- "ignoreFunctionTypeParameterNameValueShadow": true
189
+ "destructuring": "all"
221
190
  }
222
191
  ],
223
- "import/no-duplicates": [
192
+ "prefer-object-has-own": "error",
193
+ "prefer-object-spread": "error",
194
+ "prefer-rest-params": "error",
195
+ "prefer-spread": "error",
196
+ "symbol-description": "error",
197
+ "prefer-numeric-literals": "error",
198
+ "object-shorthand": [
224
199
  "error",
200
+ "always",
225
201
  {
226
- "prefer-inline": true
202
+ "avoidExplicitReturnArrows": true,
203
+ "avoidQuotes": true
227
204
  }
228
205
  ],
206
+ "prefer-template": "warn",
207
+ "import/no-duplicates": "error",
229
208
  "import/no-self-import": "error",
230
209
  "import/no-cycle": [
231
210
  "error",
@@ -239,6 +218,23 @@
239
218
  "import/no-named-as-default-member": "error",
240
219
  "import/no-empty-named-blocks": "error",
241
220
  "import/no-absolute-path": "error",
221
+ "import/no-unassigned-import": [
222
+ "error",
223
+ {
224
+ "allow": [
225
+ "@babel/polyfill",
226
+ "**/register",
227
+ "**/register.*",
228
+ "**/register/**",
229
+ "**/register/**.*",
230
+ "**/*.css",
231
+ "**/*.scss",
232
+ "**/*.sass",
233
+ "**/*.less"
234
+ ]
235
+ }
236
+ ],
237
+ "import/no-named-default": "error",
242
238
  "unicorn/no-abusive-eslint-disable": "error",
243
239
  "unicorn/no-instanceof-builtins": "error",
244
240
  "unicorn/no-invalid-remove-event-listener": "error",
@@ -248,7 +244,12 @@
248
244
  "unicorn/no-useless-length-check": "error",
249
245
  "unicorn/no-useless-spread": "error",
250
246
  "unicorn/no-useless-promise-resolve-reject": "error",
251
- "unicorn/no-useless-undefined": "error",
247
+ "unicorn/no-useless-undefined": [
248
+ "warn",
249
+ {
250
+ "checkArguments": false
251
+ }
252
+ ],
252
253
  "unicorn/no-await-in-promise-methods": "error",
253
254
  "unicorn/no-negation-in-equality-check": "error",
254
255
  "unicorn/no-thenable": "error",
@@ -266,6 +267,18 @@
266
267
  "unicorn/consistent-empty-array-spread": "error",
267
268
  "unicorn/consistent-date-clone": "error",
268
269
  "unicorn/consistent-existence-index-check": "error",
270
+ "unicorn/consistent-function-scoping": "warn",
271
+ "unicorn/filename-case": [
272
+ "error",
273
+ {
274
+ "cases": {
275
+ "camelCase": true,
276
+ "pascalCase": true,
277
+ "kebabCase": true
278
+ }
279
+ }
280
+ ],
281
+ "unicorn/no-array-reduce": "warn",
269
282
  "unicorn/prefer-array-flat-map": "error",
270
283
  "unicorn/prefer-array-find": "error",
271
284
  "unicorn/prefer-array-flat": "error",
@@ -274,6 +287,7 @@
274
287
  "unicorn/prefer-at": "error",
275
288
  "unicorn/prefer-includes": "error",
276
289
  "unicorn/prefer-modern-dom-apis": "error",
290
+ "unicorn/prefer-dom-node-dataset": "error",
277
291
  "unicorn/prefer-modern-math-apis": "error",
278
292
  "unicorn/prefer-negative-index": "error",
279
293
  "unicorn/prefer-number-properties": "error",
@@ -307,6 +321,7 @@
307
321
  "unicorn/prefer-optional-catch-binding": "error",
308
322
  "unicorn/prefer-date-now": "error",
309
323
  "unicorn/text-encoding-identifier-case": "error",
324
+ "unicorn/prefer-import-meta-properties": "error",
310
325
  "jsdoc/check-access": "error",
311
326
  "jsdoc/check-property-names": "error",
312
327
  "jsdoc/check-tag-names": "error",
@@ -319,50 +334,36 @@
319
334
  "jsdoc/require-property-description": "error",
320
335
  "jsdoc/require-property-name": "error",
321
336
  "jsdoc/require-returns-description": "warn",
322
- "complexity": [
323
- "error",
324
- 10
325
- ],
326
- "max-depth": [
327
- "error",
328
- 3
329
- ],
330
- "max-nested-callbacks": [
331
- "error",
332
- 2
333
- ],
334
- "max-params": [
335
- "error",
336
- 3
337
- ],
338
- "max-statements": [
339
- "error",
340
- 15
341
- ],
342
- "max-lines-per-function": [
343
- "error",
344
- {
345
- "max": 50,
346
- "skipBlankLines": true,
347
- "skipComments": true
348
- }
349
- ],
350
- "max-lines": [
351
- "error",
352
- {
353
- "max": 300,
354
- "skipBlankLines": true,
355
- "skipComments": true
356
- }
357
- ],
358
337
  "node/no-exports-assign": "error",
359
338
  "node/no-path-concat": "error",
360
- "react/no-children-prop": "error",
339
+ "node/handle-callback-err": "error",
340
+ "react/exhaustive-deps": "warn",
341
+ "react/no-array-index-key": "warn",
342
+ "react/no-clone-element": "warn",
361
343
  "react/no-direct-mutation-state": "error",
362
- "react/jsx-no-comment-textnodes": "error",
363
- "react/no-array-index-key": "error",
364
- "react-hooks/rules-of-hooks": "error",
365
- "react-hooks/exhaustive-deps": "error",
344
+ "react/forward-ref-uses-ref": "warn",
345
+ "react/jsx-key": "error",
346
+ "react/no-redundant-should-component-update": "error",
347
+ "react/no-did-mount-set-state": "warn",
348
+ "react/no-will-update-set-state": "warn",
349
+ "react/rules-of-hooks": "error",
350
+ "react/hook-use-state": "warn",
351
+ "react/no-children-prop": "error",
352
+ "react/jsx-no-comment-textnodes": "warn",
353
+ "react/no-namespace": "error",
354
+ "react/no-danger": "warn",
355
+ "react/no-danger-with-children": "error",
356
+ "react/no-find-dom-node": "error",
357
+ "react/no-render-return-value": "error",
358
+ "react/jsx-no-script-url": "warn",
359
+ "react/void-dom-elements-no-children": "error",
360
+ "react/jsx-no-constructed-context-values": "warn",
361
+ "react/jsx-no-useless-fragment": "warn",
362
+ "react/button-has-type": "warn",
363
+ "react/iframe-missing-sandbox": "warn",
364
+ "react/jsx-no-target-blank": "warn",
365
+ "react/no-unknown-property": "error",
366
+ "react/style-prop-object": "error",
366
367
  "jsx-a11y/alt-text": "error",
367
368
  "jsx-a11y/anchor-has-content": "error",
368
369
  "jsx-a11y/anchor-is-valid": "error",
@@ -378,12 +379,6 @@
378
379
  "jsx-a11y/label-has-associated-control": "error",
379
380
  "jsx-a11y/mouse-events-have-key-events": "error",
380
381
  "jsx-a11y/no-access-key": "error",
381
- "jsx-a11y/no-autofocus": [
382
- "error",
383
- {
384
- "ignoreNonDOM": true
385
- }
386
- ],
387
382
  "jsx-a11y/no-distracting-elements": "error",
388
383
  "jsx-a11y/no-redundant-roles": "error",
389
384
  "jsx-a11y/role-has-required-aria-props": "error",
@@ -392,6 +387,12 @@
392
387
  "jsx-a11y/tabindex-no-positive": "error",
393
388
  "jsx-a11y/lang": "error",
394
389
  "jsx-a11y/autocomplete-valid": "error",
390
+ "jsx-a11y/no-autofocus": [
391
+ "error",
392
+ {
393
+ "ignoreNonDOM": true
394
+ }
395
+ ],
395
396
  "react/only-export-components": [
396
397
  "warn",
397
398
  {
@@ -427,8 +428,108 @@
427
428
  {
428
429
  "destructuring": "all"
429
430
  }
430
- ]
431
- }
431
+ ],
432
+ "no-array-constructor": "error",
433
+ "no-unused-expressions": "error",
434
+ "no-unused-vars": [
435
+ "error",
436
+ {
437
+ "args": "all",
438
+ "argsIgnorePattern": "^_",
439
+ "caughtErrors": "all",
440
+ "caughtErrorsIgnorePattern": "^_",
441
+ "destructuredArrayIgnorePattern": "^_",
442
+ "varsIgnorePattern": "^_",
443
+ "ignoreRestSiblings": true
444
+ }
445
+ ],
446
+ "no-useless-constructor": "error",
447
+ "no-throw-literal": "off",
448
+ "prefer-promise-reject-errors": "off",
449
+ "require-await": "off",
450
+ "no-empty-function": "error",
451
+ "no-shadow": [
452
+ "error",
453
+ {
454
+ "hoist": "all",
455
+ "allow": [
456
+ "resolve",
457
+ "reject",
458
+ "done",
459
+ "next",
460
+ "error"
461
+ ],
462
+ "ignoreTypeValueShadow": true,
463
+ "ignoreFunctionTypeParameterNameValueShadow": true
464
+ }
465
+ ],
466
+ "typescript/ban-ts-comment": [
467
+ "error",
468
+ {
469
+ "ts-expect-error": "allow-with-description"
470
+ }
471
+ ],
472
+ "typescript/no-duplicate-enum-values": "error",
473
+ "typescript/no-dynamic-delete": "error",
474
+ "typescript/no-empty-object-type": "error",
475
+ "typescript/no-explicit-any": [
476
+ "warn",
477
+ {
478
+ "fixToUnknown": true
479
+ }
480
+ ],
481
+ "typescript/no-extra-non-null-assertion": "error",
482
+ "typescript/no-extraneous-class": "error",
483
+ "typescript/no-invalid-void-type": "error",
484
+ "typescript/no-misused-new": "error",
485
+ "typescript/no-namespace": "error",
486
+ "typescript/no-non-null-asserted-nullish-coalescing": "error",
487
+ "typescript/no-non-null-asserted-optional-chain": "error",
488
+ "typescript/no-non-null-assertion": "error",
489
+ "typescript/no-require-imports": "error",
490
+ "typescript/no-this-alias": "error",
491
+ "typescript/no-unnecessary-type-constraint": "error",
492
+ "typescript/no-unsafe-declaration-merging": "error",
493
+ "typescript/no-unsafe-function-type": "error",
494
+ "typescript/no-wrapper-object-types": "error",
495
+ "typescript/prefer-as-const": "error",
496
+ "typescript/prefer-literal-enum-member": "error",
497
+ "typescript/prefer-namespace-keyword": "error",
498
+ "typescript/triple-slash-reference": "error",
499
+ "typescript/unified-signatures": "error",
500
+ "typescript/adjacent-overload-signatures": "error",
501
+ "typescript/array-type": [
502
+ "error",
503
+ {
504
+ "default": "array-simple"
505
+ }
506
+ ],
507
+ "typescript/ban-tslint-comment": "error",
508
+ "typescript/class-literal-property-style": "error",
509
+ "typescript/consistent-generic-constructors": "error",
510
+ "typescript/consistent-indexed-object-style": "error",
511
+ "typescript/consistent-type-assertions": "error",
512
+ "typescript/consistent-type-definitions": [
513
+ "error",
514
+ "type"
515
+ ],
516
+ "typescript/no-confusing-non-null-assertion": "error",
517
+ "typescript/no-inferrable-types": "error",
518
+ "typescript/prefer-for-of": "error",
519
+ "typescript/prefer-function-type": "error",
520
+ "typescript/consistent-type-imports": [
521
+ "error",
522
+ {
523
+ "fixStyle": "separate-type-imports"
524
+ }
525
+ ],
526
+ "typescript/no-import-type-side-effects": "error",
527
+ "typescript/no-useless-empty-export": "error",
528
+ "typescript/no-unnecessary-parameter-property-assignment": "error"
529
+ },
530
+ "plugins": [
531
+ "typescript"
532
+ ]
432
533
  },
433
534
  {
434
535
  "files": [
@@ -457,6 +558,7 @@
457
558
  "vitest/prefer-to-be": "error",
458
559
  "vitest/prefer-to-have-length": "error",
459
560
  "vitest/valid-expect": "error",
561
+ "vitest/valid-title": "error",
460
562
  "vitest/no-conditional-in-test": "error",
461
563
  "vitest/no-conditional-expect": "error",
462
564
  "vitest/no-standalone-expect": "error",
@@ -466,11 +568,12 @@
466
568
  "max-lines": "off",
467
569
  "max-lines-per-function": "off",
468
570
  "max-statements": "off",
469
- "@typescript-eslint/no-explicit-any": "off",
470
- "@typescript-eslint/no-non-null-assertion": "off"
571
+ "typescript/no-explicit-any": "off",
572
+ "typescript/no-non-null-assertion": "off"
471
573
  },
472
574
  "plugins": [
473
- "vitest"
575
+ "vitest",
576
+ "typescript"
474
577
  ]
475
578
  },
476
579
  {
@@ -508,26 +611,32 @@
508
611
  "max-lines": "off",
509
612
  "max-lines-per-function": "off",
510
613
  "max-statements": "off",
511
- "@typescript-eslint/no-require-imports": "off",
512
614
  "no-console": "off",
513
- "no-magic-numbers": "off"
514
- }
615
+ "no-magic-numbers": "off",
616
+ "typescript/no-require-imports": "off"
617
+ },
618
+ "plugins": [
619
+ "typescript"
620
+ ]
515
621
  },
516
622
  {
517
623
  "files": [
518
624
  "**/*.d.ts"
519
625
  ],
520
626
  "rules": {
521
- "@typescript-eslint/no-empty-interface": "off",
522
- "@typescript-eslint/no-empty-object-type": "off",
523
- "@typescript-eslint/no-explicit-any": "off",
524
- "@typescript-eslint/consistent-type-definitions": "off",
525
- "@typescript-eslint/no-namespace": "off",
526
627
  "import/no-duplicates": "off",
527
- "@typescript-eslint/explicit-function-return-type": "off",
528
628
  "unicorn/filename-case": "off",
529
- "no-unused-vars": "off"
530
- }
629
+ "no-unused-vars": "off",
630
+ "typescript/no-empty-interface": "off",
631
+ "typescript/no-empty-object-type": "off",
632
+ "typescript/no-explicit-any": "off",
633
+ "typescript/consistent-type-definitions": "off",
634
+ "typescript/no-namespace": "off",
635
+ "typescript/explicit-function-return-type": "off"
636
+ },
637
+ "plugins": [
638
+ "typescript"
639
+ ]
531
640
  },
532
641
  {
533
642
  "files": [
@@ -537,15 +646,19 @@
537
646
  "no-console": "off",
538
647
  "max-lines": "off",
539
648
  "max-lines-per-function": "off",
540
- "@typescript-eslint/explicit-function-return-type": "off",
541
- "unicorn/no-process-exit": "off"
542
- }
649
+ "unicorn/no-process-exit": "off",
650
+ "typescript/explicit-function-return-type": "off"
651
+ },
652
+ "plugins": [
653
+ "typescript"
654
+ ]
543
655
  },
544
656
  {
545
657
  "files": [
546
658
  "**/*.{md,mdx}"
547
659
  ],
548
660
  "rules": {
661
+ "no-unused-expressions": "error",
549
662
  "react/react-in-jsx-scope": "off"
550
663
  },
551
664
  "globals": {
@@ -560,7 +673,10 @@
560
673
  "no-unused-expressions": "off",
561
674
  "no-unused-vars": "off",
562
675
  "unicode-bom": "off"
563
- }
676
+ },
677
+ "plugins": [
678
+ "typescript"
679
+ ]
564
680
  }
565
681
  ]
566
682
  }