eslint-config-setup 0.4.0 → 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.
- package/README.md +22 -6
- package/dist/configs/0b23ff88.js +6 -22
- package/dist/configs/12c62446.js +5 -22
- package/dist/configs/196d687e.js +33 -47
- package/dist/configs/1c3f743c.js +6 -23
- package/dist/configs/2f6f3a82.js +32 -45
- package/dist/configs/4eb62e57.js +7 -23
- package/dist/configs/52762a42.js +6 -3
- package/dist/configs/532f50a4.js +30 -20
- package/dist/configs/5a302873.js +31 -44
- package/dist/configs/6bc0d588.js +37 -20
- package/dist/configs/91e82988.js +30 -20
- package/dist/configs/c2fecd3d.js +6 -3
- package/dist/configs/cde010b4.js +5 -2
- package/dist/configs/d537b683.js +37 -20
- package/dist/configs/db69ebb6.js +34 -48
- package/dist/configs/e4b137fa.js +5 -2
- package/dist/modules.d.ts +9 -7
- package/dist/modules.js +80 -37
- package/dist/modules.js.map +1 -1
- package/dist/oxlint-configs/3047b7d6.json +30 -2
- package/dist/oxlint-configs/58d5e03b.json +31 -3
- package/dist/oxlint-configs/78b40daa.json +35 -5
- package/dist/oxlint-configs/7ff0d87e.json +45 -3
- package/dist/oxlint-configs/85912bf0.json +44 -2
- package/dist/oxlint-configs/9dc42dc3.json +35 -5
- package/dist/oxlint-configs/d46cb9b7.json +57 -6
- package/dist/oxlint-configs/ef643c60.json +57 -6
- package/package.json +37 -35
package/README.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# ESLint Config Setup
|
|
2
2
|
|
|
3
|
+
[](https://oss.sebastian-software.com)
|
|
3
4
|
[](https://github.com/sebastian-software/eslint-config-setup/actions/workflows/ci.yml)
|
|
4
5
|
[](https://www.npmjs.com/package/eslint-config-setup)
|
|
5
6
|
[](https://www.npmjs.com/package/eslint-config-setup)
|
|
@@ -7,15 +8,15 @@
|
|
|
7
8
|
[](https://opensource.org/licenses/MIT)
|
|
8
9
|
[](https://nodejs.org)
|
|
9
10
|
[](https://www.typescriptlang.org)
|
|
10
|
-
[](https://eslint.org)
|
|
11
12
|
|
|
12
13
|
The ESLint config for teams that ship with AI and want to move fast.
|
|
13
14
|
|
|
14
15
|
Most ESLint configs compose rules at runtime from dozens of plugins. That means version conflicts, plugin mismatches, and "works on my machine" differences. **ESLint Config Setup** resolves every rule at build time — you get a flat, pre-built config where every rule is already decided. No runtime composition, no surprises.
|
|
15
16
|
|
|
16
17
|
- **AI guardrails** — a dedicated `ai` mode that enforces what code review can't: explicit types, strict naming, no magic values, complexity limits. Rules that humans find tedious are trivial for an AI to follow. The AI doesn't push back. It just fixes the code.
|
|
17
|
-
- **OxLint-ready** — a single `oxlint` flag disables every ESLint rule that OxLint already covers, and `getOxlintConfig()` generates a matching OxLint config. No manual migration, no rule conflicts, no coverage gaps. Run both linters
|
|
18
|
-
- **
|
|
18
|
+
- **OxLint-ready** — a single `oxlint` flag disables every ESLint rule that OxLint already covers, and `getOxlintConfig()` generates a matching OxLint config. No manual migration, no rule conflicts, no coverage gaps. Run both linters and keep the full rule surface.
|
|
19
|
+
- **Curated plugin stack, one import** — TypeScript (`strictTypeChecked`), React 19, import cycles, security, browser compat, spell checking, and more. Every rule pre-resolved at build time. No plugin conflicts, no version mismatches.
|
|
19
20
|
|
|
20
21
|
```typescript
|
|
21
22
|
// eslint.config.ts
|
|
@@ -37,7 +38,7 @@ import { getEslintConfig } from "eslint-config-setup"
|
|
|
37
38
|
export default await getEslintConfig({ react: true })
|
|
38
39
|
```
|
|
39
40
|
|
|
40
|
-
Requires Node.js >= 22, ESLint >=
|
|
41
|
+
Requires Node.js >= 22, ESLint >= 10, and TypeScript >= 5.0.
|
|
41
42
|
|
|
42
43
|
## Configuration flags
|
|
43
44
|
|
|
@@ -69,7 +70,7 @@ export default config
|
|
|
69
70
|
- [React Linting](https://sebastian-software.github.io/eslint-config-setup/guide/react) — React 19 rules, compat layer, and OxLint acceleration
|
|
70
71
|
- [AI Mode](https://sebastian-software.github.io/eslint-config-setup/guide/ai-mode) — why AI-generated code needs different rules
|
|
71
72
|
- [OxLint Integration](https://sebastian-software.github.io/eslint-config-setup/guide/oxlint) — run ESLint + OxLint without conflicts
|
|
72
|
-
- [
|
|
73
|
+
- [Included Plugins](https://sebastian-software.github.io/eslint-config-setup/guide/plugins) — what's included and why
|
|
73
74
|
- [Configuration](https://sebastian-software.github.io/eslint-config-setup/guide/configuration) — flags and usage examples
|
|
74
75
|
- [Rule API](https://sebastian-software.github.io/eslint-config-setup/guide/rule-api) — rule manipulation and scoped overrides
|
|
75
76
|
- [File Conventions](https://sebastian-software.github.io/eslint-config-setup/guide/file-conventions) — automatic test/config/story/script overrides
|
|
@@ -83,4 +84,19 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, architecture overv
|
|
|
83
84
|
|
|
84
85
|
## License
|
|
85
86
|
|
|
86
|
-
[MIT](LICENSE)
|
|
87
|
+
[MIT](LICENSE)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
<!-- sebastian-software-branding:start -->
|
|
92
|
+
<p align="center">
|
|
93
|
+
<a href="https://oss.sebastian-software.com">
|
|
94
|
+
<img src="https://sebastian-brand.vercel.app/sebastian-software/logo-software.svg" alt="Sebastian Software" width="240" />
|
|
95
|
+
</a>
|
|
96
|
+
</p>
|
|
97
|
+
|
|
98
|
+
<p align="center">
|
|
99
|
+
<a href="https://oss.sebastian-software.com">Open Source at Sebastian Software</a><br />
|
|
100
|
+
Copyright © 2026 Sebastian Software GmbH
|
|
101
|
+
</p>
|
|
102
|
+
<!-- sebastian-software-branding:end -->
|
package/dist/configs/0b23ff88.js
CHANGED
|
@@ -126,10 +126,6 @@ export default [
|
|
|
126
126
|
]
|
|
127
127
|
}
|
|
128
128
|
],
|
|
129
|
-
"@typescript-eslint/method-signature-style": [
|
|
130
|
-
"error",
|
|
131
|
-
"property"
|
|
132
|
-
],
|
|
133
129
|
"@typescript-eslint/naming-convention": [
|
|
134
130
|
"error",
|
|
135
131
|
{
|
|
@@ -370,7 +366,6 @@ export default [
|
|
|
370
366
|
"getBeforeSet"
|
|
371
367
|
],
|
|
372
368
|
"guard-for-in": "error",
|
|
373
|
-
"import/newline-after-import": "error",
|
|
374
369
|
"import/no-extraneous-dependencies": [
|
|
375
370
|
"error",
|
|
376
371
|
{
|
|
@@ -392,9 +387,7 @@ export default [
|
|
|
392
387
|
"jsdoc/reject-function-type": "error",
|
|
393
388
|
"jsdoc/require-next-type": "error",
|
|
394
389
|
"jsdoc/require-returns-check": "error",
|
|
395
|
-
"jsdoc/require-throws-type": "error",
|
|
396
390
|
"jsdoc/require-yields-check": "error",
|
|
397
|
-
"jsdoc/require-yields-type": "error",
|
|
398
391
|
"jsdoc/ts-no-empty-object-type": "error",
|
|
399
392
|
"jsdoc/valid-types": "error",
|
|
400
393
|
"logical-assignment-operators": [
|
|
@@ -682,13 +675,8 @@ export default [
|
|
|
682
675
|
"sonarjs/reduce-initial-value": "error",
|
|
683
676
|
"symbol-description": "error",
|
|
684
677
|
"unicorn/no-array-push-push": "error",
|
|
678
|
+
"unicorn/no-for-each": "error",
|
|
685
679
|
"unicorn/no-for-loop": "error",
|
|
686
|
-
"unicorn/prefer-export-from": [
|
|
687
|
-
"error",
|
|
688
|
-
{
|
|
689
|
-
"ignoreUsedVariables": true
|
|
690
|
-
}
|
|
691
|
-
],
|
|
692
680
|
"unicorn/prefer-switch": [
|
|
693
681
|
"error",
|
|
694
682
|
{
|
|
@@ -711,7 +699,6 @@ export default [
|
|
|
711
699
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
712
700
|
"@typescript-eslint/dot-notation": "off",
|
|
713
701
|
"@typescript-eslint/member-ordering": "off",
|
|
714
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
715
702
|
"@typescript-eslint/naming-convention": "off",
|
|
716
703
|
"@typescript-eslint/no-array-delete": "off",
|
|
717
704
|
"@typescript-eslint/no-base-to-string": "off",
|
|
@@ -770,7 +757,6 @@ export default [
|
|
|
770
757
|
"@typescript-eslint/unbound-method": "off",
|
|
771
758
|
"@typescript-eslint/use-unknown-in-catch-callback-variable": "off",
|
|
772
759
|
"dot-notation": "off",
|
|
773
|
-
"getter-return": "error",
|
|
774
760
|
"no-array-constructor": "off",
|
|
775
761
|
"no-dupe-args": "error",
|
|
776
762
|
"no-empty-function": "off",
|
|
@@ -781,7 +767,6 @@ export default [
|
|
|
781
767
|
"no-shadow": "off",
|
|
782
768
|
"no-throw-literal": "off",
|
|
783
769
|
"no-undef": "error",
|
|
784
|
-
"no-unreachable": "error",
|
|
785
770
|
"no-useless-constructor": "off",
|
|
786
771
|
"prefer-const": [
|
|
787
772
|
"error",
|
|
@@ -1031,7 +1016,6 @@ export default [
|
|
|
1031
1016
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
1032
1017
|
"@typescript-eslint/dot-notation": "off",
|
|
1033
1018
|
"@typescript-eslint/member-ordering": "off",
|
|
1034
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
1035
1019
|
"@typescript-eslint/naming-convention": "off",
|
|
1036
1020
|
"@typescript-eslint/no-array-delete": "off",
|
|
1037
1021
|
"@typescript-eslint/no-base-to-string": "off",
|
|
@@ -1112,10 +1096,10 @@ export default [
|
|
|
1112
1096
|
},
|
|
1113
1097
|
|
|
1114
1098
|
// OxLint integration — disables rules already covered by OxLint
|
|
1115
|
-
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint"
|
|
1116
|
-
...[oxlintPlugin.configs["flat/typescript"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-typescript"
|
|
1117
|
-
...[oxlintPlugin.configs["flat/unicorn"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-unicorn"
|
|
1118
|
-
...[oxlintPlugin.configs["flat/import"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-import"
|
|
1119
|
-
...[oxlintPlugin.configs["flat/jsdoc"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-jsdoc"
|
|
1099
|
+
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1100
|
+
...[oxlintPlugin.configs["flat/typescript"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-typescript" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1101
|
+
...[oxlintPlugin.configs["flat/unicorn"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-unicorn" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1102
|
+
...[oxlintPlugin.configs["flat/import"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-import" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1103
|
+
...[oxlintPlugin.configs["flat/jsdoc"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-jsdoc" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1120
1104
|
|
|
1121
1105
|
]
|
package/dist/configs/12c62446.js
CHANGED
|
@@ -67,10 +67,6 @@ export default [
|
|
|
67
67
|
}
|
|
68
68
|
],
|
|
69
69
|
"@typescript-eslint/dot-notation": "error",
|
|
70
|
-
"@typescript-eslint/method-signature-style": [
|
|
71
|
-
"error",
|
|
72
|
-
"property"
|
|
73
|
-
],
|
|
74
70
|
"@typescript-eslint/no-array-delete": "error",
|
|
75
71
|
"@typescript-eslint/no-base-to-string": "error",
|
|
76
72
|
"@typescript-eslint/no-confusing-void-expression": "error",
|
|
@@ -194,7 +190,6 @@ export default [
|
|
|
194
190
|
"getBeforeSet"
|
|
195
191
|
],
|
|
196
192
|
"guard-for-in": "error",
|
|
197
|
-
"import/newline-after-import": "error",
|
|
198
193
|
"import/no-extraneous-dependencies": [
|
|
199
194
|
"error",
|
|
200
195
|
{
|
|
@@ -215,9 +210,7 @@ export default [
|
|
|
215
210
|
"jsdoc/reject-function-type": "error",
|
|
216
211
|
"jsdoc/require-next-type": "error",
|
|
217
212
|
"jsdoc/require-returns-check": "error",
|
|
218
|
-
"jsdoc/require-throws-type": "error",
|
|
219
213
|
"jsdoc/require-yields-check": "error",
|
|
220
|
-
"jsdoc/require-yields-type": "error",
|
|
221
214
|
"jsdoc/ts-no-empty-object-type": "error",
|
|
222
215
|
"jsdoc/valid-types": "error",
|
|
223
216
|
"max-depth": [
|
|
@@ -433,12 +426,6 @@ export default [
|
|
|
433
426
|
"sonarjs/reduce-initial-value": "error",
|
|
434
427
|
"symbol-description": "error",
|
|
435
428
|
"unicorn/no-for-loop": "warn",
|
|
436
|
-
"unicorn/prefer-export-from": [
|
|
437
|
-
"error",
|
|
438
|
-
{
|
|
439
|
-
"ignoreUsedVariables": true
|
|
440
|
-
}
|
|
441
|
-
],
|
|
442
429
|
"unused-imports/no-unused-imports": "error",
|
|
443
430
|
"yoda": "error"
|
|
444
431
|
},
|
|
@@ -453,7 +440,6 @@ export default [
|
|
|
453
440
|
"@typescript-eslint/consistent-return": "off",
|
|
454
441
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
455
442
|
"@typescript-eslint/dot-notation": "off",
|
|
456
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
457
443
|
"@typescript-eslint/naming-convention": "off",
|
|
458
444
|
"@typescript-eslint/no-array-delete": "off",
|
|
459
445
|
"@typescript-eslint/no-base-to-string": "off",
|
|
@@ -512,7 +498,6 @@ export default [
|
|
|
512
498
|
"@typescript-eslint/unbound-method": "off",
|
|
513
499
|
"@typescript-eslint/use-unknown-in-catch-callback-variable": "off",
|
|
514
500
|
"dot-notation": "off",
|
|
515
|
-
"getter-return": "error",
|
|
516
501
|
"no-array-constructor": "off",
|
|
517
502
|
"no-dupe-args": "error",
|
|
518
503
|
"no-empty-function": "off",
|
|
@@ -523,7 +508,6 @@ export default [
|
|
|
523
508
|
"no-shadow": "off",
|
|
524
509
|
"no-throw-literal": "off",
|
|
525
510
|
"no-undef": "error",
|
|
526
|
-
"no-unreachable": "error",
|
|
527
511
|
"no-useless-constructor": "off",
|
|
528
512
|
"prefer-const": [
|
|
529
513
|
"error",
|
|
@@ -757,7 +741,6 @@ export default [
|
|
|
757
741
|
"@typescript-eslint/await-thenable": "off",
|
|
758
742
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
759
743
|
"@typescript-eslint/dot-notation": "off",
|
|
760
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
761
744
|
"@typescript-eslint/no-array-delete": "off",
|
|
762
745
|
"@typescript-eslint/no-base-to-string": "off",
|
|
763
746
|
"@typescript-eslint/no-confusing-void-expression": "off",
|
|
@@ -837,10 +820,10 @@ export default [
|
|
|
837
820
|
},
|
|
838
821
|
|
|
839
822
|
// OxLint integration — disables rules already covered by OxLint
|
|
840
|
-
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint"
|
|
841
|
-
...[oxlintPlugin.configs["flat/typescript"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-typescript"
|
|
842
|
-
...[oxlintPlugin.configs["flat/unicorn"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-unicorn"
|
|
843
|
-
...[oxlintPlugin.configs["flat/import"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-import"
|
|
844
|
-
...[oxlintPlugin.configs["flat/jsdoc"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-jsdoc"
|
|
823
|
+
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
824
|
+
...[oxlintPlugin.configs["flat/typescript"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-typescript" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
825
|
+
...[oxlintPlugin.configs["flat/unicorn"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-unicorn" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
826
|
+
...[oxlintPlugin.configs["flat/import"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-import" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
827
|
+
...[oxlintPlugin.configs["flat/jsdoc"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-jsdoc" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
845
828
|
|
|
846
829
|
]
|
package/dist/configs/196d687e.js
CHANGED
|
@@ -9,12 +9,12 @@ import globals from "globals"
|
|
|
9
9
|
import importXPlugin from "eslint-plugin-import-x"
|
|
10
10
|
import jsdocPlugin from "eslint-plugin-jsdoc"
|
|
11
11
|
import jsonPlugin from "@eslint/json"
|
|
12
|
-
import jsxA11yPlugin from "eslint-plugin-jsx-a11y"
|
|
13
12
|
import oxlintPlugin from "eslint-plugin-oxlint"
|
|
14
13
|
import packageJsonPlugin from "eslint-plugin-package-json"
|
|
15
14
|
import perfectionistPlugin from "eslint-plugin-perfectionist"
|
|
16
15
|
import playwrightPlugin from "eslint-plugin-playwright"
|
|
17
16
|
import reactEffectPlugin from "eslint-plugin-react-you-might-not-need-an-effect"
|
|
17
|
+
import reactHooksPlugin from "eslint-plugin-react-hooks"
|
|
18
18
|
import regexpPlugin from "eslint-plugin-regexp"
|
|
19
19
|
import securityPlugin from "eslint-plugin-security"
|
|
20
20
|
import sonarjsPlugin from "eslint-plugin-sonarjs"
|
|
@@ -26,7 +26,7 @@ import unicornPlugin from "eslint-plugin-unicorn"
|
|
|
26
26
|
import unusedImportsPlugin from "eslint-plugin-unused-imports"
|
|
27
27
|
import vitestPlugin from "@vitest/eslint-plugin"
|
|
28
28
|
|
|
29
|
-
// React compat plugin —
|
|
29
|
+
// React compat plugin — maps @eslint-react rule families into the `react/` namespace
|
|
30
30
|
// and aliases rules to legacy eslint-plugin-react names for OxLint compatibility.
|
|
31
31
|
const reactCompatPlugin = (() => {
|
|
32
32
|
const core = eslintReactPlugin.rules
|
|
@@ -52,7 +52,6 @@ const reactCompatPlugin = (() => {
|
|
|
52
52
|
"no-unstable-nested-components": [core, "no-nested-component-definitions"],
|
|
53
53
|
"display-name": [core, "no-missing-component-display-name"],
|
|
54
54
|
"forward-ref-uses-ref": [core, "no-forward-ref"],
|
|
55
|
-
"destructuring-assignment": [core, "prefer-destructuring-assignment"],
|
|
56
55
|
"no-did-mount-set-state": [core, "no-set-state-in-component-did-mount"],
|
|
57
56
|
"no-did-update-set-state": [core, "no-set-state-in-component-did-update"],
|
|
58
57
|
"no-will-update-set-state": [core, "no-set-state-in-component-will-update"],
|
|
@@ -74,7 +73,7 @@ const reactCompatPlugin = (() => {
|
|
|
74
73
|
// Identical-name aliases (core rules where legacy name = @eslint-react name)
|
|
75
74
|
const identicalCore = [
|
|
76
75
|
"no-access-state-in-setstate", "no-array-index-key",
|
|
77
|
-
"no-direct-mutation-state",
|
|
76
|
+
"no-direct-mutation-state",
|
|
78
77
|
"no-unused-class-component-members", "no-unused-state",
|
|
79
78
|
]
|
|
80
79
|
for (const n of identicalCore) aliases[n] = [core, n]
|
|
@@ -128,9 +127,9 @@ export default [
|
|
|
128
127
|
"de-morgan": deMorganPlugin,
|
|
129
128
|
"import": importXPlugin,
|
|
130
129
|
"jsdoc": jsdocPlugin,
|
|
131
|
-
"jsx-a11y": jsxA11yPlugin,
|
|
132
130
|
"perfectionist": perfectionistPlugin,
|
|
133
131
|
"react": reactCompatPlugin,
|
|
132
|
+
"react-hooks": reactHooksPlugin,
|
|
134
133
|
"react-you-might-not-need-an-effect": reactEffectPlugin,
|
|
135
134
|
"regexp": regexpPlugin,
|
|
136
135
|
"security": securityPlugin,
|
|
@@ -233,10 +232,6 @@ export default [
|
|
|
233
232
|
]
|
|
234
233
|
}
|
|
235
234
|
],
|
|
236
|
-
"@typescript-eslint/method-signature-style": [
|
|
237
|
-
"error",
|
|
238
|
-
"property"
|
|
239
|
-
],
|
|
240
235
|
"@typescript-eslint/naming-convention": [
|
|
241
236
|
"error",
|
|
242
237
|
{
|
|
@@ -484,7 +479,6 @@ export default [
|
|
|
484
479
|
"getBeforeSet"
|
|
485
480
|
],
|
|
486
481
|
"guard-for-in": "error",
|
|
487
|
-
"import/newline-after-import": "error",
|
|
488
482
|
"import/no-extraneous-dependencies": [
|
|
489
483
|
"error",
|
|
490
484
|
{
|
|
@@ -506,13 +500,9 @@ export default [
|
|
|
506
500
|
"jsdoc/reject-function-type": "error",
|
|
507
501
|
"jsdoc/require-next-type": "error",
|
|
508
502
|
"jsdoc/require-returns-check": "error",
|
|
509
|
-
"jsdoc/require-throws-type": "error",
|
|
510
503
|
"jsdoc/require-yields-check": "error",
|
|
511
|
-
"jsdoc/require-yields-type": "error",
|
|
512
504
|
"jsdoc/ts-no-empty-object-type": "error",
|
|
513
505
|
"jsdoc/valid-types": "error",
|
|
514
|
-
"jsx-a11y/interactive-supports-focus": "error",
|
|
515
|
-
"jsx-a11y/no-noninteractive-element-interactions": "error",
|
|
516
506
|
"logical-assignment-operators": [
|
|
517
507
|
"error",
|
|
518
508
|
"always",
|
|
@@ -670,24 +660,36 @@ export default [
|
|
|
670
660
|
"prefer-template": "error",
|
|
671
661
|
"preserve-caught-error": "error",
|
|
672
662
|
"radix": "error",
|
|
663
|
+
"react-hooks/config": "error",
|
|
664
|
+
"react-hooks/error-boundaries": "error",
|
|
665
|
+
"react-hooks/gating": "error",
|
|
666
|
+
"react-hooks/globals": "error",
|
|
667
|
+
"react-hooks/immutability": "error",
|
|
668
|
+
"react-hooks/incompatible-library": "warn",
|
|
669
|
+
"react-hooks/preserve-manual-memoization": "error",
|
|
670
|
+
"react-hooks/purity": "error",
|
|
671
|
+
"react-hooks/refs": "error",
|
|
672
|
+
"react-hooks/set-state-in-effect": "error",
|
|
673
|
+
"react-hooks/set-state-in-render": "error",
|
|
674
|
+
"react-hooks/static-components": "error",
|
|
675
|
+
"react-hooks/unsupported-syntax": "warn",
|
|
676
|
+
"react-hooks/use-memo": "error",
|
|
677
|
+
"react-hooks/void-use-memo": "error",
|
|
673
678
|
"react-you-might-not-need-an-effect/no-adjust-state-on-prop-change": "warn",
|
|
674
679
|
"react-you-might-not-need-an-effect/no-chain-state-updates": "error",
|
|
675
680
|
"react-you-might-not-need-an-effect/no-derived-state": "error",
|
|
676
|
-
"react-you-might-not-need-an-effect/no-empty-effect": "error",
|
|
677
681
|
"react-you-might-not-need-an-effect/no-event-handler": "error",
|
|
682
|
+
"react-you-might-not-need-an-effect/no-external-store-subscription": "error",
|
|
678
683
|
"react-you-might-not-need-an-effect/no-initialize-state": "error",
|
|
679
684
|
"react-you-might-not-need-an-effect/no-pass-data-to-parent": "error",
|
|
680
685
|
"react-you-might-not-need-an-effect/no-pass-live-state-to-parent": "error",
|
|
681
686
|
"react-you-might-not-need-an-effect/no-reset-all-state-on-prop-change": "error",
|
|
682
|
-
"react/component-hook-factories": "error",
|
|
683
687
|
"react/context-name": "warn",
|
|
684
|
-
"react/destructuring-assignment": "warn",
|
|
685
|
-
"react/error-boundaries": "error",
|
|
686
|
-
"react/exhaustive-deps": "warn",
|
|
687
688
|
"react/function-definition": "error",
|
|
688
689
|
"react/id-name": "warn",
|
|
689
690
|
"react/jsx-key-before-spread": "error",
|
|
690
691
|
"react/jsx-no-children-prop-with-children": "error",
|
|
692
|
+
"react/jsx-no-leaked-dollar": "warn",
|
|
691
693
|
"react/jsx-no-leaked-render": "error",
|
|
692
694
|
"react/jsx-no-leaked-semicolon": "warn",
|
|
693
695
|
"react/no-access-state-in-setstate": "error",
|
|
@@ -702,39 +704,30 @@ export default [
|
|
|
702
704
|
"react/no-component-will-update": "error",
|
|
703
705
|
"react/no-context-provider": "error",
|
|
704
706
|
"react/no-create-ref": "error",
|
|
705
|
-
"react/no-did-update-set-state": "warn",
|
|
706
707
|
"react/no-duplicate-key": "error",
|
|
707
708
|
"react/no-flush-sync": "error",
|
|
708
709
|
"react/no-hydrate": "error",
|
|
709
710
|
"react/no-implicit-key": "error",
|
|
710
711
|
"react/no-leaked-event-listener": "error",
|
|
712
|
+
"react/no-leaked-fetch": "warn",
|
|
713
|
+
"react/no-leaked-intersection-observer": "warn",
|
|
711
714
|
"react/no-leaked-interval": "error",
|
|
712
715
|
"react/no-leaked-resize-observer": "error",
|
|
713
716
|
"react/no-leaked-timeout": "error",
|
|
714
717
|
"react/no-misused-capture-owner-stack": "error",
|
|
715
718
|
"react/no-nested-lazy-component-declarations": "error",
|
|
716
|
-
"react/no-object-type-as-default-prop": "error",
|
|
717
719
|
"react/no-render": "error",
|
|
718
|
-
"react/no-unnecessary-use-callback": "warn",
|
|
719
|
-
"react/no-unnecessary-use-memo": "warn",
|
|
720
720
|
"react/no-unnecessary-use-prefix": "warn",
|
|
721
721
|
"react/no-unsafe-component-will-mount": "warn",
|
|
722
722
|
"react/no-unsafe-component-will-receive-props": "warn",
|
|
723
723
|
"react/no-unsafe-component-will-update": "warn",
|
|
724
724
|
"react/no-unsafe-iframe-sandbox": "warn",
|
|
725
|
-
"react/no-unstable-nested-components": "error",
|
|
726
725
|
"react/no-unused-class-component-members": "warn",
|
|
727
726
|
"react/no-unused-props": "warn",
|
|
728
727
|
"react/no-unused-state": "error",
|
|
729
728
|
"react/no-use-context": "error",
|
|
730
729
|
"react/no-use-form-state": "error",
|
|
731
|
-
"react/purity": "warn",
|
|
732
730
|
"react/ref-name": "warn",
|
|
733
|
-
"react/rules-of-hooks": "error",
|
|
734
|
-
"react/set-state-in-effect": "warn",
|
|
735
|
-
"react/set-state-in-render": "error",
|
|
736
|
-
"react/unsupported-syntax": "error",
|
|
737
|
-
"react/use-memo": "error",
|
|
738
731
|
"regexp/confusing-quantifier": "warn",
|
|
739
732
|
"regexp/control-character-escape": "error",
|
|
740
733
|
"regexp/match-any": "error",
|
|
@@ -863,13 +856,8 @@ export default [
|
|
|
863
856
|
"sonarjs/reduce-initial-value": "error",
|
|
864
857
|
"symbol-description": "error",
|
|
865
858
|
"unicorn/no-array-push-push": "error",
|
|
859
|
+
"unicorn/no-for-each": "error",
|
|
866
860
|
"unicorn/no-for-loop": "error",
|
|
867
|
-
"unicorn/prefer-export-from": [
|
|
868
|
-
"error",
|
|
869
|
-
{
|
|
870
|
-
"ignoreUsedVariables": true
|
|
871
|
-
}
|
|
872
|
-
],
|
|
873
861
|
"unicorn/prefer-switch": [
|
|
874
862
|
"error",
|
|
875
863
|
{
|
|
@@ -892,7 +880,6 @@ export default [
|
|
|
892
880
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
893
881
|
"@typescript-eslint/dot-notation": "off",
|
|
894
882
|
"@typescript-eslint/member-ordering": "off",
|
|
895
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
896
883
|
"@typescript-eslint/naming-convention": "off",
|
|
897
884
|
"@typescript-eslint/no-array-delete": "off",
|
|
898
885
|
"@typescript-eslint/no-base-to-string": "off",
|
|
@@ -951,7 +938,6 @@ export default [
|
|
|
951
938
|
"@typescript-eslint/unbound-method": "off",
|
|
952
939
|
"@typescript-eslint/use-unknown-in-catch-callback-variable": "off",
|
|
953
940
|
"dot-notation": "off",
|
|
954
|
-
"getter-return": "error",
|
|
955
941
|
"no-array-constructor": "off",
|
|
956
942
|
"no-dupe-args": "error",
|
|
957
943
|
"no-empty-function": "off",
|
|
@@ -962,7 +948,6 @@ export default [
|
|
|
962
948
|
"no-shadow": "off",
|
|
963
949
|
"no-throw-literal": "off",
|
|
964
950
|
"no-undef": "error",
|
|
965
|
-
"no-unreachable": "error",
|
|
966
951
|
"no-useless-constructor": "off",
|
|
967
952
|
"prefer-const": [
|
|
968
953
|
"error",
|
|
@@ -1212,7 +1197,6 @@ export default [
|
|
|
1212
1197
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
1213
1198
|
"@typescript-eslint/dot-notation": "off",
|
|
1214
1199
|
"@typescript-eslint/member-ordering": "off",
|
|
1215
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
1216
1200
|
"@typescript-eslint/naming-convention": "off",
|
|
1217
1201
|
"@typescript-eslint/no-array-delete": "off",
|
|
1218
1202
|
"@typescript-eslint/no-base-to-string": "off",
|
|
@@ -1292,12 +1276,14 @@ export default [
|
|
|
1292
1276
|
},
|
|
1293
1277
|
|
|
1294
1278
|
// OxLint integration — disables rules already covered by OxLint
|
|
1295
|
-
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint"
|
|
1296
|
-
...[oxlintPlugin.configs["flat/react"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-react"
|
|
1297
|
-
...[oxlintPlugin.configs["flat/jsx-a11y"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-jsx-a11y"
|
|
1298
|
-
...[oxlintPlugin.configs["flat/
|
|
1299
|
-
...[oxlintPlugin.configs["flat/
|
|
1300
|
-
...[oxlintPlugin.configs["flat/
|
|
1301
|
-
...[oxlintPlugin.configs["flat/
|
|
1279
|
+
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1280
|
+
...[oxlintPlugin.configs["flat/react"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-react" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1281
|
+
...[oxlintPlugin.configs["flat/jsx-a11y"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-jsx-a11y" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1282
|
+
...[oxlintPlugin.configs["flat/react-hooks"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-react-hooks" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1283
|
+
...[oxlintPlugin.configs["flat/react-perf"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-react-perf" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1284
|
+
...[oxlintPlugin.configs["flat/typescript"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-typescript" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1285
|
+
...[oxlintPlugin.configs["flat/unicorn"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-unicorn" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1286
|
+
...[oxlintPlugin.configs["flat/import"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-import" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1287
|
+
...[oxlintPlugin.configs["flat/jsdoc"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-jsdoc" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
1302
1288
|
|
|
1303
1289
|
]
|
package/dist/configs/1c3f743c.js
CHANGED
|
@@ -71,10 +71,6 @@ export default [
|
|
|
71
71
|
}
|
|
72
72
|
],
|
|
73
73
|
"@typescript-eslint/dot-notation": "error",
|
|
74
|
-
"@typescript-eslint/method-signature-style": [
|
|
75
|
-
"error",
|
|
76
|
-
"property"
|
|
77
|
-
],
|
|
78
74
|
"@typescript-eslint/no-array-delete": "error",
|
|
79
75
|
"@typescript-eslint/no-base-to-string": "error",
|
|
80
76
|
"@typescript-eslint/no-confusing-void-expression": "error",
|
|
@@ -197,7 +193,6 @@ export default [
|
|
|
197
193
|
"getBeforeSet"
|
|
198
194
|
],
|
|
199
195
|
"guard-for-in": "error",
|
|
200
|
-
"import/newline-after-import": "error",
|
|
201
196
|
"import/no-extraneous-dependencies": [
|
|
202
197
|
"error",
|
|
203
198
|
{
|
|
@@ -218,9 +213,7 @@ export default [
|
|
|
218
213
|
"jsdoc/reject-function-type": "error",
|
|
219
214
|
"jsdoc/require-next-type": "error",
|
|
220
215
|
"jsdoc/require-returns-check": "error",
|
|
221
|
-
"jsdoc/require-throws-type": "error",
|
|
222
216
|
"jsdoc/require-yields-check": "error",
|
|
223
|
-
"jsdoc/require-yields-type": "error",
|
|
224
217
|
"jsdoc/ts-no-empty-object-type": "error",
|
|
225
218
|
"jsdoc/valid-types": "error",
|
|
226
219
|
"max-depth": [
|
|
@@ -465,12 +458,6 @@ export default [
|
|
|
465
458
|
"sonarjs/reduce-initial-value": "error",
|
|
466
459
|
"symbol-description": "error",
|
|
467
460
|
"unicorn/no-for-loop": "warn",
|
|
468
|
-
"unicorn/prefer-export-from": [
|
|
469
|
-
"error",
|
|
470
|
-
{
|
|
471
|
-
"ignoreUsedVariables": true
|
|
472
|
-
}
|
|
473
|
-
],
|
|
474
461
|
"unused-imports/no-unused-imports": "error",
|
|
475
462
|
"yoda": "error"
|
|
476
463
|
},
|
|
@@ -485,7 +472,6 @@ export default [
|
|
|
485
472
|
"@typescript-eslint/consistent-return": "off",
|
|
486
473
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
487
474
|
"@typescript-eslint/dot-notation": "off",
|
|
488
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
489
475
|
"@typescript-eslint/naming-convention": "off",
|
|
490
476
|
"@typescript-eslint/no-array-delete": "off",
|
|
491
477
|
"@typescript-eslint/no-base-to-string": "off",
|
|
@@ -544,7 +530,6 @@ export default [
|
|
|
544
530
|
"@typescript-eslint/unbound-method": "off",
|
|
545
531
|
"@typescript-eslint/use-unknown-in-catch-callback-variable": "off",
|
|
546
532
|
"dot-notation": "off",
|
|
547
|
-
"getter-return": "error",
|
|
548
533
|
"no-array-constructor": "off",
|
|
549
534
|
"no-dupe-args": "error",
|
|
550
535
|
"no-empty-function": "off",
|
|
@@ -555,7 +540,6 @@ export default [
|
|
|
555
540
|
"no-shadow": "off",
|
|
556
541
|
"no-throw-literal": "off",
|
|
557
542
|
"no-undef": "error",
|
|
558
|
-
"no-unreachable": "error",
|
|
559
543
|
"no-useless-constructor": "off",
|
|
560
544
|
"prefer-const": [
|
|
561
545
|
"error",
|
|
@@ -789,7 +773,6 @@ export default [
|
|
|
789
773
|
"@typescript-eslint/await-thenable": "off",
|
|
790
774
|
"@typescript-eslint/consistent-type-exports": "off",
|
|
791
775
|
"@typescript-eslint/dot-notation": "off",
|
|
792
|
-
"@typescript-eslint/method-signature-style": "off",
|
|
793
776
|
"@typescript-eslint/no-array-delete": "off",
|
|
794
777
|
"@typescript-eslint/no-base-to-string": "off",
|
|
795
778
|
"@typescript-eslint/no-confusing-void-expression": "off",
|
|
@@ -869,11 +852,11 @@ export default [
|
|
|
869
852
|
},
|
|
870
853
|
|
|
871
854
|
// OxLint integration — disables rules already covered by OxLint
|
|
872
|
-
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint"
|
|
873
|
-
...[oxlintPlugin.configs["flat/node"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-node"
|
|
874
|
-
...[oxlintPlugin.configs["flat/typescript"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-typescript"
|
|
875
|
-
...[oxlintPlugin.configs["flat/unicorn"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-unicorn"
|
|
876
|
-
...[oxlintPlugin.configs["flat/import"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-import"
|
|
877
|
-
...[oxlintPlugin.configs["flat/jsdoc"]].flat().map((c) => ({ name: "eslint-config-setup/oxlint-jsdoc"
|
|
855
|
+
...[oxlintPlugin.configs["flat/recommended"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
856
|
+
...[oxlintPlugin.configs["flat/node"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-node" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
857
|
+
...[oxlintPlugin.configs["flat/typescript"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-typescript" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
858
|
+
...[oxlintPlugin.configs["flat/unicorn"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-unicorn" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
859
|
+
...[oxlintPlugin.configs["flat/import"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-import" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
860
|
+
...[oxlintPlugin.configs["flat/jsdoc"]].flat().map((c, index, array) => ({ ...c, name: "eslint-config-setup/oxlint-jsdoc" + (array.length > 1 ? "-" + (index + 1) : "") })),
|
|
878
861
|
|
|
879
862
|
]
|