eslint-config-setup 0.3.3 → 0.5.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,12 +1,12 @@
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",
8
7
  "react",
9
- "jsx-a11y"
8
+ "jsx-a11y",
9
+ "react-perf"
10
10
  ],
11
11
  "categories": {
12
12
  "correctness": "off"
@@ -18,6 +18,7 @@
18
18
  "rules": {
19
19
  "constructor-super": "error",
20
20
  "for-direction": "error",
21
+ "getter-return": "error",
21
22
  "no-async-promise-executor": "error",
22
23
  "no-case-declarations": "error",
23
24
  "no-class-assign": "error",
@@ -57,30 +58,31 @@
57
58
  "no-sparse-arrays": "error",
58
59
  "no-this-before-super": "error",
59
60
  "no-unassigned-vars": "error",
61
+ "no-unreachable": "error",
60
62
  "no-unsafe-finally": "error",
61
63
  "no-unsafe-negation": "error",
62
64
  "no-unsafe-optional-chaining": "error",
63
65
  "no-unused-labels": "error",
64
66
  "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
- ],
67
+ "no-unused-vars": "error",
77
68
  "no-useless-catch": "error",
78
69
  "no-useless-escape": "error",
79
70
  "no-with": "error",
80
71
  "preserve-caught-error": "error",
81
72
  "require-yield": "error",
82
- "use-isnan": "error",
83
- "valid-typeof": "error",
73
+ "use-isnan": [
74
+ "error",
75
+ {
76
+ "enforceForIndexOf": true,
77
+ "enforceForSwitchCase": true
78
+ }
79
+ ],
80
+ "valid-typeof": [
81
+ "error",
82
+ {
83
+ "requireStringLiterals": true
84
+ }
85
+ ],
84
86
  "accessor-pairs": [
85
87
  "error",
86
88
  {
@@ -103,7 +105,12 @@
103
105
  "getBeforeSet"
104
106
  ],
105
107
  "no-useless-rename": "error",
106
- "no-useless-computed-key": "error",
108
+ "no-useless-computed-key": [
109
+ "error",
110
+ {
111
+ "enforceForClassMembers": true
112
+ }
113
+ ],
107
114
  "no-eval": "error",
108
115
  "no-alert": "error",
109
116
  "no-caller": "error",
@@ -114,6 +121,7 @@
114
121
  "no-proto": "error",
115
122
  "no-iterator": "error",
116
123
  "no-script-url": "error",
124
+ "no-implicit-globals": "error",
117
125
  "eqeqeq": [
118
126
  "error",
119
127
  "smart"
@@ -122,7 +130,12 @@
122
130
  "default-case-last": "error",
123
131
  "radix": "error",
124
132
  "yoda": "error",
125
- "no-sequences": "error",
133
+ "no-sequences": [
134
+ "error",
135
+ {
136
+ "allowInParentheses": false
137
+ }
138
+ ],
126
139
  "no-new": "error",
127
140
  "no-labels": "error",
128
141
  "no-extra-bind": "error",
@@ -130,7 +143,53 @@
130
143
  "no-useless-call": "error",
131
144
  "no-useless-concat": "error",
132
145
  "no-useless-return": "error",
146
+ "no-return-assign": [
147
+ "error",
148
+ "always"
149
+ ],
133
150
  "no-multi-str": "error",
151
+ "prefer-regex-literals": [
152
+ "error",
153
+ {
154
+ "disallowRedundantWrapping": true
155
+ }
156
+ ],
157
+ "complexity": [
158
+ "error",
159
+ 10
160
+ ],
161
+ "max-depth": [
162
+ "error",
163
+ 3
164
+ ],
165
+ "max-nested-callbacks": [
166
+ "error",
167
+ 2
168
+ ],
169
+ "max-params": [
170
+ "error",
171
+ 3
172
+ ],
173
+ "max-statements": [
174
+ "error",
175
+ 15
176
+ ],
177
+ "max-lines-per-function": [
178
+ "error",
179
+ {
180
+ "max": 100,
181
+ "skipBlankLines": true,
182
+ "skipComments": true
183
+ }
184
+ ],
185
+ "max-lines": [
186
+ "error",
187
+ {
188
+ "max": 300,
189
+ "skipBlankLines": true,
190
+ "skipComments": true
191
+ }
192
+ ],
134
193
  "no-var": "error",
135
194
  "prefer-const": [
136
195
  "error",
@@ -142,96 +201,55 @@
142
201
  "prefer-object-spread": "error",
143
202
  "prefer-rest-params": "error",
144
203
  "prefer-spread": "error",
145
- "prefer-template": "error",
146
204
  "symbol-description": "error",
147
- "@typescript-eslint/ban-ts-comment": [
148
- "error",
149
- {
150
- "minimumDescriptionLength": 10
151
- }
152
- ],
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": [
205
+ "prefer-numeric-literals": "error",
206
+ "object-shorthand": [
158
207
  "error",
208
+ "always",
159
209
  {
160
- "fixToUnknown": true
210
+ "avoidExplicitReturnArrows": true,
211
+ "avoidQuotes": true
161
212
  }
162
213
  ],
163
- "@typescript-eslint/no-extra-non-null-assertion": "error",
164
- "@typescript-eslint/no-extraneous-class": "error",
165
- "@typescript-eslint/no-invalid-void-type": "error",
166
- "@typescript-eslint/no-misused-new": "error",
167
- "@typescript-eslint/no-namespace": "error",
168
- "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
169
- "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
170
- "@typescript-eslint/no-non-null-assertion": "error",
171
- "@typescript-eslint/no-require-imports": "error",
172
- "@typescript-eslint/no-this-alias": "error",
173
- "@typescript-eslint/no-unnecessary-type-constraint": "error",
174
- "@typescript-eslint/no-unsafe-declaration-merging": "error",
175
- "@typescript-eslint/no-unsafe-function-type": "error",
176
- "no-unused-expressions": "error",
177
- "no-useless-constructor": "error",
178
- "@typescript-eslint/no-wrapper-object-types": "error",
179
- "@typescript-eslint/prefer-as-const": "error",
180
- "@typescript-eslint/prefer-literal-enum-member": "error",
181
- "@typescript-eslint/prefer-namespace-keyword": "error",
182
- "@typescript-eslint/triple-slash-reference": "error",
183
- "@typescript-eslint/unified-signatures": "error",
184
- "@typescript-eslint/adjacent-overload-signatures": "error",
185
- "@typescript-eslint/array-type": [
214
+ "prefer-template": "error",
215
+ "no-else-return": [
186
216
  "error",
187
217
  {
188
- "default": "array-simple"
218
+ "allowElseIf": false
189
219
  }
190
220
  ],
191
- "@typescript-eslint/ban-tslint-comment": "error",
192
- "@typescript-eslint/class-literal-property-style": "error",
193
- "@typescript-eslint/consistent-generic-constructors": "error",
194
- "@typescript-eslint/consistent-indexed-object-style": "error",
195
- "@typescript-eslint/consistent-type-assertions": "error",
196
- "@typescript-eslint/consistent-type-definitions": [
197
- "error",
198
- "type"
199
- ],
200
- "@typescript-eslint/no-confusing-non-null-assertion": "error",
201
- "no-empty-function": "error",
202
- "@typescript-eslint/no-inferrable-types": "error",
203
- "@typescript-eslint/prefer-for-of": "error",
204
- "@typescript-eslint/prefer-function-type": "error",
205
- "@typescript-eslint/consistent-type-imports": [
221
+ "no-nested-ternary": "error",
222
+ "no-unneeded-ternary": "error",
223
+ "no-negated-condition": "error",
224
+ "no-lonely-if": "error",
225
+ "no-param-reassign": [
206
226
  "error",
207
227
  {
208
- "fixStyle": "inline-type-imports"
228
+ "props": true
209
229
  }
210
230
  ],
211
- "@typescript-eslint/no-import-type-side-effects": "error",
212
- "@typescript-eslint/no-useless-empty-export": "error",
213
- "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error",
214
- "no-shadow": [
231
+ "no-multi-assign": "error",
232
+ "no-implicit-coercion": "error",
233
+ "arrow-body-style": "error",
234
+ "prefer-arrow-callback": [
215
235
  "error",
216
236
  {
217
- "hoist": "all",
218
- "allow": [
219
- "resolve",
220
- "reject",
221
- "done",
222
- "next",
223
- "error"
224
- ],
225
- "ignoreTypeValueShadow": true,
226
- "ignoreFunctionTypeParameterNameValueShadow": true
237
+ "allowNamedFunctions": true
227
238
  }
228
239
  ],
229
- "import/no-duplicates": [
240
+ "logical-assignment-operators": [
230
241
  "error",
242
+ "always",
231
243
  {
232
- "prefer-inline": true
244
+ "enforceForIfStatements": true
233
245
  }
234
246
  ],
247
+ "prefer-exponentiation-operator": "error",
248
+ "prefer-named-capture-group": "error",
249
+ "require-unicode-regexp": "error",
250
+ "no-warning-comments": "warn",
251
+ "no-await-in-loop": "error",
252
+ "import/no-duplicates": "error",
235
253
  "import/no-self-import": "error",
236
254
  "import/no-cycle": [
237
255
  "error",
@@ -241,10 +259,28 @@
241
259
  ],
242
260
  "import/no-mutable-exports": "error",
243
261
  "import/first": "error",
262
+ "import/newline-after-import": "error",
244
263
  "import/no-named-as-default": "error",
245
264
  "import/no-named-as-default-member": "error",
246
265
  "import/no-empty-named-blocks": "error",
247
266
  "import/no-absolute-path": "error",
267
+ "import/no-unassigned-import": [
268
+ "error",
269
+ {
270
+ "allow": [
271
+ "@babel/polyfill",
272
+ "**/register",
273
+ "**/register.*",
274
+ "**/register/**",
275
+ "**/register/**.*",
276
+ "**/*.css",
277
+ "**/*.scss",
278
+ "**/*.sass",
279
+ "**/*.less"
280
+ ]
281
+ }
282
+ ],
283
+ "import/no-named-default": "error",
248
284
  "unicorn/no-abusive-eslint-disable": "error",
249
285
  "unicorn/no-instanceof-builtins": "error",
250
286
  "unicorn/no-invalid-remove-event-listener": "error",
@@ -254,7 +290,12 @@
254
290
  "unicorn/no-useless-length-check": "error",
255
291
  "unicorn/no-useless-spread": "error",
256
292
  "unicorn/no-useless-promise-resolve-reject": "error",
257
- "unicorn/no-useless-undefined": "error",
293
+ "unicorn/no-useless-undefined": [
294
+ "warn",
295
+ {
296
+ "checkArguments": false
297
+ }
298
+ ],
258
299
  "unicorn/no-await-in-promise-methods": "error",
259
300
  "unicorn/no-negation-in-equality-check": "error",
260
301
  "unicorn/no-thenable": "error",
@@ -272,6 +313,21 @@
272
313
  "unicorn/consistent-empty-array-spread": "error",
273
314
  "unicorn/consistent-date-clone": "error",
274
315
  "unicorn/consistent-existence-index-check": "error",
316
+ "unicorn/consistent-function-scoping": "error",
317
+ "unicorn/filename-case": [
318
+ "error",
319
+ {
320
+ "cases": {
321
+ "camelCase": true,
322
+ "pascalCase": true,
323
+ "kebabCase": true
324
+ },
325
+ "ignore": [
326
+ "__tests__"
327
+ ]
328
+ }
329
+ ],
330
+ "unicorn/no-array-reduce": "error",
275
331
  "unicorn/prefer-array-flat-map": "error",
276
332
  "unicorn/prefer-array-find": "error",
277
333
  "unicorn/prefer-array-flat": "error",
@@ -280,6 +336,7 @@
280
336
  "unicorn/prefer-at": "error",
281
337
  "unicorn/prefer-includes": "error",
282
338
  "unicorn/prefer-modern-dom-apis": "error",
339
+ "unicorn/prefer-dom-node-dataset": "error",
283
340
  "unicorn/prefer-modern-math-apis": "error",
284
341
  "unicorn/prefer-negative-index": "error",
285
342
  "unicorn/prefer-number-properties": "error",
@@ -304,6 +361,12 @@
304
361
  "unicorn/no-unreadable-array-destructuring": "error",
305
362
  "unicorn/no-zero-fractions": "error",
306
363
  "unicorn/numeric-separators-style": "error",
364
+ "unicorn/prefer-export-from": [
365
+ "error",
366
+ {
367
+ "checkUsedVariables": false
368
+ }
369
+ ],
307
370
  "unicorn/prefer-native-coercion-functions": "error",
308
371
  "unicorn/prefer-regexp-test": "error",
309
372
  "unicorn/prefer-spread": "error",
@@ -313,6 +376,19 @@
313
376
  "unicorn/prefer-optional-catch-binding": "error",
314
377
  "unicorn/prefer-date-now": "error",
315
378
  "unicorn/text-encoding-identifier-case": "error",
379
+ "unicorn/prefer-import-meta-properties": "error",
380
+ "unicorn/prefer-ternary": [
381
+ "error",
382
+ "only-single-line"
383
+ ],
384
+ "unicorn/no-useless-switch-case": "error",
385
+ "unicorn/custom-error-definition": "error",
386
+ "unicorn/prefer-default-parameters": "error",
387
+ "unicorn/prefer-logical-operator-over-ternary": "error",
388
+ "unicorn/prefer-math-min-max": "error",
389
+ "unicorn/prefer-set-size": "error",
390
+ "unicorn/explicit-length-check": "error",
391
+ "unicorn/switch-case-braces": "error",
316
392
  "jsdoc/check-access": "error",
317
393
  "jsdoc/check-property-names": "error",
318
394
  "jsdoc/check-tag-names": "error",
@@ -327,12 +403,35 @@
327
403
  "jsdoc/require-property-name": "error",
328
404
  "jsdoc/require-returns": "error",
329
405
  "jsdoc/require-returns-description": "warn",
330
- "react/no-children-prop": "error",
406
+ "jsdoc/require-throws-type": "error",
407
+ "jsdoc/require-yields-type": "error",
408
+ "react/no-array-index-key": "error",
409
+ "react/no-clone-element": "warn",
331
410
  "react/no-direct-mutation-state": "error",
411
+ "react/forward-ref-uses-ref": "error",
412
+ "react/jsx-key": "error",
413
+ "react/no-unstable-nested-components": "error",
414
+ "react/no-did-mount-set-state": "warn",
415
+ "react/no-did-update-set-state": "warn",
416
+ "react/no-will-update-set-state": "warn",
417
+ "react/hook-use-state": "warn",
418
+ "react/no-children-prop": "error",
332
419
  "react/jsx-no-comment-textnodes": "error",
333
- "react/no-array-index-key": "error",
334
- "react-hooks/rules-of-hooks": "error",
335
- "react-hooks/exhaustive-deps": "error",
420
+ "react/no-namespace": "error",
421
+ "react/no-danger": "warn",
422
+ "react/no-danger-with-children": "error",
423
+ "react/no-find-dom-node": "error",
424
+ "react/no-render-return-value": "error",
425
+ "react/jsx-no-script-url": "warn",
426
+ "react/void-dom-elements-no-children": "error",
427
+ "react/jsx-no-constructed-context-values": "error",
428
+ "react/no-object-type-as-default-prop": "error",
429
+ "react/jsx-no-useless-fragment": "error",
430
+ "react/button-has-type": "error",
431
+ "react/iframe-missing-sandbox": "error",
432
+ "react/jsx-no-target-blank": "error",
433
+ "react/no-unknown-property": "error",
434
+ "react/style-prop-object": "error",
336
435
  "jsx-a11y/alt-text": "error",
337
436
  "jsx-a11y/anchor-has-content": "error",
338
437
  "jsx-a11y/anchor-is-valid": "error",
@@ -348,12 +447,6 @@
348
447
  "jsx-a11y/label-has-associated-control": "error",
349
448
  "jsx-a11y/mouse-events-have-key-events": "error",
350
449
  "jsx-a11y/no-access-key": "error",
351
- "jsx-a11y/no-autofocus": [
352
- "error",
353
- {
354
- "ignoreNonDOM": true
355
- }
356
- ],
357
450
  "jsx-a11y/no-distracting-elements": "error",
358
451
  "jsx-a11y/no-redundant-roles": "error",
359
452
  "jsx-a11y/role-has-required-aria-props": "error",
@@ -362,121 +455,21 @@
362
455
  "jsx-a11y/tabindex-no-positive": "error",
363
456
  "jsx-a11y/lang": "error",
364
457
  "jsx-a11y/autocomplete-valid": "error",
365
- "no-else-return": [
366
- "error",
367
- {
368
- "allowElseIf": false
369
- }
370
- ],
371
- "no-nested-ternary": "error",
372
- "no-unneeded-ternary": "error",
373
- "no-negated-condition": "error",
374
- "no-lonely-if": "error",
375
- "no-param-reassign": [
376
- "error",
377
- {
378
- "props": true
379
- }
380
- ],
381
- "no-multi-assign": "error",
382
- "no-implicit-coercion": "error",
383
- "arrow-body-style": "error",
384
- "no-return-assign": [
385
- "error",
386
- "always"
387
- ],
388
- "prefer-exponentiation-operator": "error",
389
- "no-warning-comments": "warn",
390
- "no-await-in-loop": "error",
391
- "@typescript-eslint/explicit-function-return-type": [
392
- "error",
393
- {
394
- "allowExpressions": true,
395
- "allowTypedFunctionExpressions": true,
396
- "allowHigherOrderFunctions": true,
397
- "allowIIFEs": true
398
- }
399
- ],
400
- "@typescript-eslint/prefer-enum-initializers": "error",
401
- "unicorn/consistent-function-scoping": "error",
402
- "unicorn/no-array-for-each": "error",
403
- "unicorn/no-array-reduce": "error",
404
- "unicorn/prefer-ternary": [
405
- "error",
406
- "only-single-line"
407
- ],
408
- "unicorn/filename-case": [
458
+ "jsx-a11y/no-autofocus": [
409
459
  "error",
410
460
  {
411
- "cases": {
412
- "camelCase": true,
413
- "pascalCase": true
414
- }
461
+ "ignoreNonDOM": true
415
462
  }
416
463
  ],
417
- "unicorn/no-useless-switch-case": "error",
418
- "unicorn/prefer-default-parameters": "error",
419
- "unicorn/prefer-logical-operator-over-ternary": "error",
420
- "unicorn/prefer-math-min-max": "error",
421
- "unicorn/prefer-set-size": "error",
422
- "unicorn/explicit-length-check": "error",
423
- "unicorn/switch-case-braces": "error",
464
+ "react-perf/jsx-no-jsx-as-prop": "error",
465
+ "react-perf/jsx-no-new-array-as-prop": "error",
466
+ "react-perf/jsx-no-new-function-as-prop": "error",
467
+ "react-perf/jsx-no-new-object-as-prop": "error",
424
468
  "jsx-a11y/no-static-element-interactions": "error",
425
- "complexity": [
426
- "error",
427
- 10
428
- ],
429
- "max-depth": [
430
- "error",
431
- 3
432
- ],
433
- "max-nested-callbacks": [
434
- "error",
435
- 2
436
- ],
437
- "max-params": [
438
- "error",
439
- 3
440
- ],
441
- "max-statements": [
442
- "error",
443
- 15
444
- ],
445
- "max-lines-per-function": [
446
- "error",
447
- {
448
- "max": 50,
449
- "skipBlankLines": true,
450
- "skipComments": true
451
- }
452
- ],
453
- "max-lines": [
454
- "error",
455
- {
456
- "max": 300,
457
- "skipBlankLines": true,
458
- "skipComments": true
459
- }
460
- ],
461
- "no-magic-numbers": [
462
- "error",
463
- {
464
- "ignore": [
465
- -1,
466
- 0,
467
- 1,
468
- 2
469
- ],
470
- "ignoreArrayIndexes": true,
471
- "ignoreDefaultValues": true,
472
- "enforceConst": true,
473
- "ignoreClassFieldInitialValues": true,
474
- "ignoreEnums": true,
475
- "ignoreNumericLiteralTypes": true,
476
- "ignoreReadonlyClassProperties": true,
477
- "ignoreTypeIndexes": true
478
- }
479
- ],
469
+ "jsx-a11y/no-noninteractive-element-interactions": "error",
470
+ "jsx-a11y/interactive-supports-focus": "error",
471
+ "react/rules-of-hooks": "error",
472
+ "react/exhaustive-deps": "warn",
480
473
  "react/only-export-components": [
481
474
  "warn",
482
475
  {
@@ -494,6 +487,7 @@
494
487
  ],
495
488
  "rules": {
496
489
  "constructor-super": "off",
490
+ "getter-return": "off",
497
491
  "no-class-assign": "off",
498
492
  "no-const-assign": "off",
499
493
  "no-dupe-class-members": "off",
@@ -505,9 +499,146 @@
505
499
  "no-redeclare": "off",
506
500
  "no-setter-return": "off",
507
501
  "no-this-before-super": "off",
502
+ "no-unreachable": "off",
508
503
  "no-unsafe-negation": "off",
509
- "no-with": "off"
510
- }
504
+ "no-with": "off",
505
+ "prefer-const": [
506
+ "error",
507
+ {
508
+ "destructuring": "all"
509
+ }
510
+ ],
511
+ "no-array-constructor": "error",
512
+ "no-implied-eval": "off",
513
+ "no-unused-expressions": "error",
514
+ "no-unused-vars": [
515
+ "error",
516
+ {
517
+ "args": "all",
518
+ "argsIgnorePattern": "^_",
519
+ "caughtErrors": "all",
520
+ "caughtErrorsIgnorePattern": "^_",
521
+ "destructuredArrayIgnorePattern": "^_",
522
+ "varsIgnorePattern": "^_",
523
+ "ignoreRestSiblings": true
524
+ }
525
+ ],
526
+ "no-useless-constructor": "error",
527
+ "no-throw-literal": "off",
528
+ "prefer-promise-reject-errors": "off",
529
+ "require-await": "off",
530
+ "no-empty-function": "error",
531
+ "no-shadow": [
532
+ "error",
533
+ {
534
+ "hoist": "all",
535
+ "allow": [
536
+ "resolve",
537
+ "reject",
538
+ "done",
539
+ "next",
540
+ "error"
541
+ ],
542
+ "ignoreTypeValueShadow": true,
543
+ "ignoreFunctionTypeParameterNameValueShadow": true
544
+ }
545
+ ],
546
+ "no-magic-numbers": [
547
+ "error",
548
+ {
549
+ "ignore": [
550
+ -1,
551
+ 0,
552
+ 1,
553
+ 2
554
+ ],
555
+ "ignoreArrayIndexes": true,
556
+ "ignoreDefaultValues": true,
557
+ "enforceConst": true,
558
+ "ignoreClassFieldInitialValues": true,
559
+ "ignoreEnums": true,
560
+ "ignoreNumericLiteralTypes": true,
561
+ "ignoreReadonlyClassProperties": true,
562
+ "ignoreTypeIndexes": true
563
+ }
564
+ ],
565
+ "typescript/ban-ts-comment": [
566
+ "error",
567
+ {
568
+ "ts-expect-error": "allow-with-description"
569
+ }
570
+ ],
571
+ "typescript/no-duplicate-enum-values": "error",
572
+ "typescript/no-dynamic-delete": "error",
573
+ "typescript/no-empty-object-type": "error",
574
+ "typescript/no-explicit-any": "error",
575
+ "typescript/no-extra-non-null-assertion": "error",
576
+ "typescript/no-extraneous-class": "error",
577
+ "typescript/no-invalid-void-type": "error",
578
+ "typescript/no-misused-new": "error",
579
+ "typescript/no-namespace": "error",
580
+ "typescript/no-non-null-asserted-nullish-coalescing": "error",
581
+ "typescript/no-non-null-asserted-optional-chain": "error",
582
+ "typescript/no-non-null-assertion": "error",
583
+ "typescript/no-require-imports": "error",
584
+ "typescript/no-this-alias": "error",
585
+ "typescript/no-unnecessary-type-constraint": "error",
586
+ "typescript/no-unsafe-declaration-merging": "error",
587
+ "typescript/no-unsafe-function-type": "error",
588
+ "typescript/no-wrapper-object-types": "error",
589
+ "typescript/prefer-as-const": "error",
590
+ "typescript/prefer-literal-enum-member": "error",
591
+ "typescript/prefer-namespace-keyword": "error",
592
+ "typescript/triple-slash-reference": "error",
593
+ "typescript/unified-signatures": "error",
594
+ "typescript/adjacent-overload-signatures": "error",
595
+ "typescript/array-type": [
596
+ "error",
597
+ {
598
+ "default": "array-simple"
599
+ }
600
+ ],
601
+ "typescript/ban-tslint-comment": "error",
602
+ "typescript/class-literal-property-style": "error",
603
+ "typescript/consistent-generic-constructors": "error",
604
+ "typescript/consistent-indexed-object-style": "error",
605
+ "typescript/consistent-type-assertions": "error",
606
+ "typescript/consistent-type-definitions": [
607
+ "error",
608
+ "type"
609
+ ],
610
+ "typescript/no-confusing-non-null-assertion": "error",
611
+ "typescript/no-inferrable-types": "error",
612
+ "typescript/prefer-for-of": "error",
613
+ "typescript/prefer-function-type": "error",
614
+ "typescript/consistent-type-imports": [
615
+ "error",
616
+ {
617
+ "fixStyle": "inline-type-imports"
618
+ }
619
+ ],
620
+ "typescript/no-import-type-side-effects": "error",
621
+ "typescript/no-useless-empty-export": "error",
622
+ "typescript/no-unnecessary-parameter-property-assignment": "error",
623
+ "typescript/method-signature-style": [
624
+ "error",
625
+ "property"
626
+ ],
627
+ "typescript/explicit-function-return-type": [
628
+ "error",
629
+ {
630
+ "allowExpressions": true,
631
+ "allowTypedFunctionExpressions": true,
632
+ "allowHigherOrderFunctions": true,
633
+ "allowIIFEs": true
634
+ }
635
+ ],
636
+ "typescript/explicit-member-accessibility": "error",
637
+ "typescript/prefer-enum-initializers": "error"
638
+ },
639
+ "plugins": [
640
+ "typescript"
641
+ ]
511
642
  },
512
643
  {
513
644
  "files": [
@@ -521,11 +652,12 @@
521
652
  "max-lines-per-function": "off",
522
653
  "max-statements": "off",
523
654
  "max-nested-callbacks": "off",
524
- "@typescript-eslint/explicit-function-return-type": "off",
525
- "no-magic-numbers": "off"
655
+ "no-magic-numbers": "off",
656
+ "typescript/explicit-function-return-type": "off"
526
657
  },
527
658
  "plugins": [
528
- "vitest"
659
+ "vitest",
660
+ "typescript"
529
661
  ]
530
662
  },
531
663
  {
@@ -536,9 +668,12 @@
536
668
  "max-lines": "off",
537
669
  "max-lines-per-function": "off",
538
670
  "max-statements": "off",
539
- "@typescript-eslint/explicit-function-return-type": "off",
540
- "no-magic-numbers": "off"
541
- }
671
+ "no-magic-numbers": "off",
672
+ "typescript/explicit-function-return-type": "off"
673
+ },
674
+ "plugins": [
675
+ "typescript"
676
+ ]
542
677
  },
543
678
  {
544
679
  "files": [
@@ -552,20 +687,26 @@
552
687
  "max-lines": "off",
553
688
  "max-lines-per-function": "off",
554
689
  "max-statements": "off",
555
- "@typescript-eslint/explicit-function-return-type": "off",
556
- "no-magic-numbers": "off"
557
- }
690
+ "no-magic-numbers": "off",
691
+ "typescript/explicit-function-return-type": "off"
692
+ },
693
+ "plugins": [
694
+ "typescript"
695
+ ]
558
696
  },
559
697
  {
560
698
  "files": [
561
699
  "**/*.d.ts"
562
700
  ],
563
701
  "rules": {
564
- "@typescript-eslint/explicit-function-return-type": "off",
565
- "@typescript-eslint/no-explicit-any": "off",
566
702
  "unicorn/filename-case": "off",
567
- "no-magic-numbers": "off"
568
- }
703
+ "no-magic-numbers": "off",
704
+ "typescript/explicit-function-return-type": "off",
705
+ "typescript/no-explicit-any": "off"
706
+ },
707
+ "plugins": [
708
+ "typescript"
709
+ ]
569
710
  },
570
711
  {
571
712
  "files": [
@@ -581,6 +722,7 @@
581
722
  "vitest/prefer-to-be": "error",
582
723
  "vitest/prefer-to-have-length": "error",
583
724
  "vitest/valid-expect": "error",
725
+ "vitest/valid-title": "error",
584
726
  "vitest/no-conditional-in-test": "error",
585
727
  "vitest/no-conditional-expect": "error",
586
728
  "vitest/no-standalone-expect": "error",
@@ -590,11 +732,12 @@
590
732
  "max-lines": "off",
591
733
  "max-lines-per-function": "off",
592
734
  "max-statements": "off",
593
- "@typescript-eslint/no-explicit-any": "off",
594
- "@typescript-eslint/no-non-null-assertion": "off"
735
+ "typescript/no-explicit-any": "off",
736
+ "typescript/no-non-null-assertion": "off"
595
737
  },
596
738
  "plugins": [
597
- "vitest"
739
+ "vitest",
740
+ "typescript"
598
741
  ]
599
742
  },
600
743
  {
@@ -632,26 +775,32 @@
632
775
  "max-lines": "off",
633
776
  "max-lines-per-function": "off",
634
777
  "max-statements": "off",
635
- "@typescript-eslint/no-require-imports": "off",
636
778
  "no-console": "off",
637
- "no-magic-numbers": "off"
638
- }
779
+ "no-magic-numbers": "off",
780
+ "typescript/no-require-imports": "off"
781
+ },
782
+ "plugins": [
783
+ "typescript"
784
+ ]
639
785
  },
640
786
  {
641
787
  "files": [
642
788
  "**/*.d.ts"
643
789
  ],
644
790
  "rules": {
645
- "@typescript-eslint/no-empty-interface": "off",
646
- "@typescript-eslint/no-empty-object-type": "off",
647
- "@typescript-eslint/no-explicit-any": "off",
648
- "@typescript-eslint/consistent-type-definitions": "off",
649
- "@typescript-eslint/no-namespace": "off",
650
791
  "import/no-duplicates": "off",
651
- "@typescript-eslint/explicit-function-return-type": "off",
652
792
  "unicorn/filename-case": "off",
653
- "no-unused-vars": "off"
654
- }
793
+ "no-unused-vars": "off",
794
+ "typescript/no-empty-interface": "off",
795
+ "typescript/no-empty-object-type": "off",
796
+ "typescript/no-explicit-any": "off",
797
+ "typescript/consistent-type-definitions": "off",
798
+ "typescript/no-namespace": "off",
799
+ "typescript/explicit-function-return-type": "off"
800
+ },
801
+ "plugins": [
802
+ "typescript"
803
+ ]
655
804
  },
656
805
  {
657
806
  "files": [
@@ -661,15 +810,19 @@
661
810
  "no-console": "off",
662
811
  "max-lines": "off",
663
812
  "max-lines-per-function": "off",
664
- "@typescript-eslint/explicit-function-return-type": "off",
665
- "unicorn/no-process-exit": "off"
666
- }
813
+ "unicorn/no-process-exit": "off",
814
+ "typescript/explicit-function-return-type": "off"
815
+ },
816
+ "plugins": [
817
+ "typescript"
818
+ ]
667
819
  },
668
820
  {
669
821
  "files": [
670
822
  "**/*.{md,mdx}"
671
823
  ],
672
824
  "rules": {
825
+ "no-unused-expressions": "error",
673
826
  "react/react-in-jsx-scope": "off"
674
827
  },
675
828
  "globals": {
@@ -684,7 +837,10 @@
684
837
  "no-unused-expressions": "off",
685
838
  "no-unused-vars": "off",
686
839
  "unicode-bom": "off"
687
- }
840
+ },
841
+ "plugins": [
842
+ "typescript"
843
+ ]
688
844
  }
689
845
  ]
690
846
  }