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