@ethang/eslint-config 21.4.0 → 21.4.1
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/eslint.config.js +2 -26
- package/package.json +1 -1
- package/build.ts +0 -34
- package/dist/eslint.config.js +0 -2
- package/dist/package.json +0 -68
- package/src/README.md +0 -100
- package/src/build/create-config-file.ts +0 -57
- package/src/build/create-config.ts +0 -96
- package/src/build/get-react-version.ts +0 -19
- package/src/build/list-utilities.ts +0 -124
- package/src/build/rule-list.ts +0 -284
- package/src/build/update-readme.ts +0 -195
- package/src/build/update-rules.ts +0 -124
- package/src/config.angular.js +0 -107
- package/src/config.astro.js +0 -68
- package/src/config.react.js +0 -117
- package/src/config.solid.js +0 -34
- package/src/constants.js +0 -16
- package/src/eslint.config.js +0 -1051
- package/src/setup/a11y.ts +0 -19
- package/src/setup/angular.ts +0 -40
- package/src/setup/astro.ts +0 -14
- package/src/setup/barrel.ts +0 -17
- package/src/setup/compat.ts +0 -13
- package/src/setup/cspell.ts +0 -83
- package/src/setup/css.ts +0 -12
- package/src/setup/depend.ts +0 -14
- package/src/setup/eslint.ts +0 -246
- package/src/setup/gen-rules.ts +0 -75
- package/src/setup/json.ts +0 -17
- package/src/setup/lodash.ts +0 -58
- package/src/setup/markdown.ts +0 -16
- package/src/setup/n.ts +0 -86
- package/src/setup/perfectionist.ts +0 -68
- package/src/setup/react.ts +0 -82
- package/src/setup/solid.ts +0 -21
- package/src/setup/sonar.ts +0 -39
- package/src/setup/tailwind.ts +0 -10
- package/src/setup/tanstack-query.ts +0 -9
- package/src/setup/tanstack-router.ts +0 -9
- package/src/setup/typescript-eslint.ts +0 -118
- package/src/setup/unicorn.ts +0 -38
- package/tsconfig.json +0 -5
- /package/{dist/README.md → README.md} +0 -0
- /package/{dist/chunk-WK3YS7OG.js → chunk-WK3YS7OG.js} +0 -0
- /package/{dist/chunk-WK3YS7OG.js.map → chunk-WK3YS7OG.js.map} +0 -0
- /package/{dist/config.angular.d.ts → config.angular.d.ts} +0 -0
- /package/{dist/config.angular.js → config.angular.js} +0 -0
- /package/{dist/config.angular.js.map → config.angular.js.map} +0 -0
- /package/{dist/config.astro.d.ts → config.astro.d.ts} +0 -0
- /package/{dist/config.astro.js → config.astro.js} +0 -0
- /package/{dist/config.astro.js.map → config.astro.js.map} +0 -0
- /package/{dist/config.react.d.ts → config.react.d.ts} +0 -0
- /package/{dist/config.react.js → config.react.js} +0 -0
- /package/{dist/config.react.js.map → config.react.js.map} +0 -0
- /package/{dist/config.solid.d.ts → config.solid.d.ts} +0 -0
- /package/{dist/config.solid.js → config.solid.js} +0 -0
- /package/{dist/config.solid.js.map → config.solid.js.map} +0 -0
- /package/{dist/constants.js → constants.js} +0 -0
- /package/{dist/constants.js.map → constants.js.map} +0 -0
- /package/{dist/eslint.config.d.ts → eslint.config.d.ts} +0 -0
- /package/{dist/eslint.config.js.map → eslint.config.js.map} +0 -0
package/src/setup/a11y.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import a11y from "eslint-plugin-jsx-a11y";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
|
|
5
|
-
|
|
6
|
-
const ruleNames = keys(getNonDeprecatedRules(a11y.rules ?? {}));
|
|
7
|
-
const customRules = [
|
|
8
|
-
{
|
|
9
|
-
// throws false positives
|
|
10
|
-
name: "control-has-associated-label",
|
|
11
|
-
rule: "off",
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: "media-has-caption",
|
|
15
|
-
rule: "off",
|
|
16
|
-
},
|
|
17
|
-
];
|
|
18
|
-
|
|
19
|
-
export const a11yRules = genRules(ruleNames, customRules, "a11y");
|
package/src/setup/angular.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import angularTS from "@angular-eslint/eslint-plugin";
|
|
2
|
-
import angularTemplate from "@angular-eslint/eslint-plugin-template";
|
|
3
|
-
import keys from "lodash/keys.js";
|
|
4
|
-
|
|
5
|
-
import { genRules, getNonDeprecatedRules } from "./gen-rules.js";
|
|
6
|
-
|
|
7
|
-
// @ts-expect-error this is ok
|
|
8
|
-
const tsRuleNames = keys(getNonDeprecatedRules(angularTS.rules));
|
|
9
|
-
const templateRuleNames = keys(
|
|
10
|
-
// @ts-expect-error this is ok
|
|
11
|
-
getNonDeprecatedRules(angularTemplate.rules),
|
|
12
|
-
);
|
|
13
|
-
|
|
14
|
-
const customTsRules = [
|
|
15
|
-
{
|
|
16
|
-
name: "directive-selector",
|
|
17
|
-
rule: ["error", { prefix: "app", style: "camelCase", type: "attribute" }],
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
name: "component-selector",
|
|
21
|
-
rule: ["error", { prefix: "app", style: "kebab-case", type: "element" }],
|
|
22
|
-
},
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
const customTemplateRules = [
|
|
26
|
-
{ name: "i18n", rule: "off" },
|
|
27
|
-
{ name: "no-call-expression", rule: "off" },
|
|
28
|
-
{ name: "prefer-ngsrc", rule: "warn" },
|
|
29
|
-
];
|
|
30
|
-
|
|
31
|
-
export const angularTsRules = genRules(
|
|
32
|
-
tsRuleNames,
|
|
33
|
-
customTsRules,
|
|
34
|
-
"@angular-eslint",
|
|
35
|
-
);
|
|
36
|
-
export const angularTemplateRules = genRules(
|
|
37
|
-
templateRuleNames,
|
|
38
|
-
customTemplateRules,
|
|
39
|
-
"@angular-eslint/template",
|
|
40
|
-
);
|
package/src/setup/astro.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import astro from "eslint-plugin-astro";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
|
|
5
|
-
|
|
6
|
-
const ruleNames = keys(getNonDeprecatedRules(astro.rules));
|
|
7
|
-
const customRules = [
|
|
8
|
-
{
|
|
9
|
-
name: "no-set-html-directive",
|
|
10
|
-
rule: "off",
|
|
11
|
-
},
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
export const astroRules = genRules(ruleNames, customRules, "astro");
|
package/src/setup/barrel.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// @ts-expect-error no types
|
|
2
|
-
import barrel from "eslint-plugin-barrel-files";
|
|
3
|
-
import keys from "lodash/keys.js";
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
type CustomRules,
|
|
7
|
-
genRules,
|
|
8
|
-
getNonDeprecatedRules,
|
|
9
|
-
} from "./gen-rules.ts";
|
|
10
|
-
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
|
|
12
|
-
const ruleNames = keys(getNonDeprecatedRules(barrel.rules));
|
|
13
|
-
const customRules: CustomRules = [
|
|
14
|
-
{ name: "avoid-importing-barrel-files", rule: "off" },
|
|
15
|
-
];
|
|
16
|
-
|
|
17
|
-
export const barrelRules = genRules(ruleNames, customRules, "barrel");
|
package/src/setup/compat.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import compat from "eslint-plugin-compat";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
type CustomRules,
|
|
6
|
-
genRules,
|
|
7
|
-
getNonDeprecatedRules,
|
|
8
|
-
} from "./gen-rules.ts";
|
|
9
|
-
|
|
10
|
-
const ruleNames = keys(getNonDeprecatedRules(compat.rules));
|
|
11
|
-
const changedRules: CustomRules = [];
|
|
12
|
-
|
|
13
|
-
export const compatRules = genRules(ruleNames, changedRules, "compat");
|
package/src/setup/cspell.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import cspell from "@cspell/eslint-plugin";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
type CustomRules,
|
|
6
|
-
genRules,
|
|
7
|
-
getNonDeprecatedRules,
|
|
8
|
-
} from "./gen-rules.js";
|
|
9
|
-
|
|
10
|
-
const ruleNames = keys(getNonDeprecatedRules(cspell.rules));
|
|
11
|
-
|
|
12
|
-
const customRules: CustomRules = [
|
|
13
|
-
{
|
|
14
|
-
name: "spellchecker",
|
|
15
|
-
rule: [
|
|
16
|
-
"error",
|
|
17
|
-
{
|
|
18
|
-
cspell: {
|
|
19
|
-
words: [
|
|
20
|
-
"typicode",
|
|
21
|
-
"toolbelt",
|
|
22
|
-
"taze",
|
|
23
|
-
"ethang",
|
|
24
|
-
"TSESTree",
|
|
25
|
-
"Boop",
|
|
26
|
-
"cldr",
|
|
27
|
-
"astro",
|
|
28
|
-
"laravel",
|
|
29
|
-
"qwik",
|
|
30
|
-
"sitecore",
|
|
31
|
-
"uswds",
|
|
32
|
-
"mediat",
|
|
33
|
-
"Packt",
|
|
34
|
-
"Academind",
|
|
35
|
-
"Udemy",
|
|
36
|
-
"Colte",
|
|
37
|
-
"Bootcamp",
|
|
38
|
-
"HTMX",
|
|
39
|
-
"MERN",
|
|
40
|
-
"Nuxt",
|
|
41
|
-
"Credly",
|
|
42
|
-
"Sterett",
|
|
43
|
-
"Beyonder",
|
|
44
|
-
"hotspot",
|
|
45
|
-
"lqip",
|
|
46
|
-
"Hawn",
|
|
47
|
-
"nextui",
|
|
48
|
-
"speculationrules",
|
|
49
|
-
"zustand",
|
|
50
|
-
"vinxi",
|
|
51
|
-
"datasource",
|
|
52
|
-
"turso",
|
|
53
|
-
"supabase",
|
|
54
|
-
"solidjs",
|
|
55
|
-
"labelledby",
|
|
56
|
-
"svix",
|
|
57
|
-
"blockqoute",
|
|
58
|
-
"cortexjs",
|
|
59
|
-
"mathrm",
|
|
60
|
-
"nums",
|
|
61
|
-
"lifecycles",
|
|
62
|
-
"krausest",
|
|
63
|
-
"Signalis",
|
|
64
|
-
"Plass",
|
|
65
|
-
"Iteree",
|
|
66
|
-
"Sonner",
|
|
67
|
-
"cmdk",
|
|
68
|
-
"ngsw",
|
|
69
|
-
"dexie",
|
|
70
|
-
"leetcode",
|
|
71
|
-
"ngsrc",
|
|
72
|
-
"sindresorhus",
|
|
73
|
-
"rogan",
|
|
74
|
-
"heroui",
|
|
75
|
-
"millis",
|
|
76
|
-
],
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
},
|
|
81
|
-
];
|
|
82
|
-
|
|
83
|
-
export const cspellRules = genRules(ruleNames, customRules, "cspell");
|
package/src/setup/css.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import css from "@eslint/css";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import { genRules, getNonDeprecatedRules } from "./gen-rules.js";
|
|
5
|
-
|
|
6
|
-
const ruleNames = keys(getNonDeprecatedRules(css.rules));
|
|
7
|
-
|
|
8
|
-
export const cssRules = genRules(
|
|
9
|
-
ruleNames,
|
|
10
|
-
[{ name: "no-invalid-at-rules", rule: "off" }],
|
|
11
|
-
"css",
|
|
12
|
-
);
|
package/src/setup/depend.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import depend from "eslint-plugin-depend";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import { genRules, getNonDeprecatedRules } from "./gen-rules.ts";
|
|
5
|
-
|
|
6
|
-
const ruleNames = keys(getNonDeprecatedRules(depend.rules));
|
|
7
|
-
const changedRules = [
|
|
8
|
-
{
|
|
9
|
-
name: "ban-dependencies",
|
|
10
|
-
rule: ["error", { allowed: ["lodash", "fs-extra"] }],
|
|
11
|
-
},
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
export const dependRules = genRules(ruleNames, changedRules, "depend");
|
package/src/setup/eslint.ts
DELETED
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
import eslint from "@eslint/js";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import { genRules } from "./gen-rules.ts";
|
|
5
|
-
|
|
6
|
-
const ruleNames = keys(eslint.configs.all.rules);
|
|
7
|
-
const customRules = [
|
|
8
|
-
{
|
|
9
|
-
name: "arrow-body-style",
|
|
10
|
-
rule: "off",
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
name: "camelcase",
|
|
14
|
-
rule: "off",
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: "capitalized-comments",
|
|
18
|
-
rule: "off",
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: "class-methods-use-this",
|
|
22
|
-
rule: "off",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "complexity",
|
|
26
|
-
rule: "off",
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "consistent-return",
|
|
30
|
-
rule: "off",
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "consistent-this",
|
|
34
|
-
rule: "off",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "curly",
|
|
38
|
-
rule: "off",
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "default-case",
|
|
42
|
-
rule: "off",
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "default-case-last",
|
|
46
|
-
rule: "off",
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "default-param-last",
|
|
50
|
-
rule: "off",
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "dot-notation",
|
|
54
|
-
rule: "off",
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: "func-names",
|
|
58
|
-
rule: "off",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: "func-style",
|
|
62
|
-
rule: ["error", "declaration", { allowArrowFunctions: true }],
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: "id-denylist",
|
|
66
|
-
rule: "off",
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: "id-length",
|
|
70
|
-
rule: "off",
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: "id-match",
|
|
74
|
-
rule: "off",
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: "init-declarations",
|
|
78
|
-
rule: "off",
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: "max-lines",
|
|
82
|
-
rule: "off",
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: "max-lines-per-function",
|
|
86
|
-
rule: "off",
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: "max-params",
|
|
90
|
-
rule: "off",
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
name: "max-statements",
|
|
94
|
-
rule: "off",
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: "new-cap",
|
|
98
|
-
rule: "off",
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
name: "no-array-constructor",
|
|
102
|
-
rule: "off",
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
name: "no-dupe-class-members",
|
|
106
|
-
rule: "off",
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: "no-empty-function",
|
|
110
|
-
rule: "off",
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
name: "no-implicit-globals",
|
|
114
|
-
rule: "off",
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
name: "no-implied-eval",
|
|
118
|
-
rule: "off",
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
name: "no-inline-comments",
|
|
122
|
-
rule: "off",
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
name: "no-magic-numbers",
|
|
126
|
-
rule: "off",
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
name: "no-redeclare",
|
|
130
|
-
rule: "off",
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
name: "no-restricted-exports",
|
|
134
|
-
rule: "off",
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
name: "no-restricted-globals",
|
|
138
|
-
rule: "off",
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
name: "no-restricted-imports",
|
|
142
|
-
rule: "off",
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: "no-restricted-properties",
|
|
146
|
-
rule: "off",
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
name: "no-restricted-syntax",
|
|
150
|
-
rule: "off",
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
name: "no-shadow",
|
|
154
|
-
rule: "off",
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
name: "no-template-curly-in-string",
|
|
158
|
-
rule: "off",
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
name: "no-ternary",
|
|
162
|
-
rule: "off",
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
name: "no-throw-literal",
|
|
166
|
-
rule: "off",
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
name: "no-undef",
|
|
170
|
-
rule: "off",
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
name: "no-undefined",
|
|
174
|
-
rule: "off",
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
name: "no-underscore-dangle",
|
|
178
|
-
rule: "off",
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
name: "no-unexpected-multiline",
|
|
182
|
-
rule: "off",
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
name: "no-unsafe-optional-chaining",
|
|
186
|
-
rule: ["error", { disallowArithmeticOperators: true }],
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
name: "no-unused-expressions",
|
|
190
|
-
rule: "off",
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
name: "no-unused-vars",
|
|
194
|
-
rule: "off",
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
name: "no-use-before-define",
|
|
198
|
-
rule: "off",
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
name: "no-useless-assignment",
|
|
202
|
-
rule: "off",
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
name: "no-useless-constructor",
|
|
206
|
-
rule: "off",
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
name: "no-warning-comments",
|
|
210
|
-
rule: "off",
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
name: "one-var",
|
|
214
|
-
rule: "off",
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
name: "prefer-arrow-callback",
|
|
218
|
-
rule: "off",
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
name: "prefer-destructuring",
|
|
222
|
-
rule: "off",
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
name: "prefer-promise-reject-errors",
|
|
226
|
-
rule: "off",
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
name: "require-await",
|
|
230
|
-
rule: "off",
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
name: "sort-imports",
|
|
234
|
-
rule: "off",
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
name: "sort-keys",
|
|
238
|
-
rule: "off",
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
name: "yoda",
|
|
242
|
-
rule: ["error", "always"],
|
|
243
|
-
},
|
|
244
|
-
];
|
|
245
|
-
|
|
246
|
-
export const eslintRules = genRules(ruleNames, customRules);
|
package/src/setup/gen-rules.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type { Rule } from "eslint";
|
|
2
|
-
|
|
3
|
-
import includes from "lodash/includes.js";
|
|
4
|
-
import isNil from "lodash/isNil.js";
|
|
5
|
-
|
|
6
|
-
export type EsLintRules = Record<string, Rule.RuleModule>;
|
|
7
|
-
|
|
8
|
-
export const getNonDeprecatedRules = (rules: EsLintRules) => {
|
|
9
|
-
const filtered: EsLintRules = {};
|
|
10
|
-
|
|
11
|
-
for (const [key, value] of Object.entries(rules)) {
|
|
12
|
-
if (true !== value.meta?.deprecated) {
|
|
13
|
-
filtered[key] = value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return filtered;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export type CustomRules = {
|
|
21
|
-
name: string;
|
|
22
|
-
rule: unknown;
|
|
23
|
-
}[];
|
|
24
|
-
|
|
25
|
-
const getRuleStrings = (
|
|
26
|
-
ruleNames: string[],
|
|
27
|
-
defaultOverride: string,
|
|
28
|
-
prefix?: string,
|
|
29
|
-
) => {
|
|
30
|
-
const rules: Record<string, unknown> = {};
|
|
31
|
-
|
|
32
|
-
for (const rule of ruleNames) {
|
|
33
|
-
if (prefix === undefined) {
|
|
34
|
-
rules[rule] = isNil(defaultOverride) ? "error" : defaultOverride;
|
|
35
|
-
} else {
|
|
36
|
-
rules[`${prefix}/${rule}`] = isNil(defaultOverride)
|
|
37
|
-
? "error"
|
|
38
|
-
: defaultOverride;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return rules;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export const genRules = (
|
|
46
|
-
ruleNames: string[],
|
|
47
|
-
customRules?: CustomRules,
|
|
48
|
-
prefix?: string,
|
|
49
|
-
defaultOverride = "error",
|
|
50
|
-
) => {
|
|
51
|
-
const rules = getRuleStrings(ruleNames, defaultOverride, prefix);
|
|
52
|
-
|
|
53
|
-
if (!isNil(customRules)) {
|
|
54
|
-
for (const rule of customRules) {
|
|
55
|
-
if (includes(ruleNames, rule.name)) {
|
|
56
|
-
// eslint-disable-next-line sonar/nested-control-flow
|
|
57
|
-
if (prefix === undefined) {
|
|
58
|
-
rules[rule.name] = rule.rule;
|
|
59
|
-
} else {
|
|
60
|
-
rules[`${prefix}/${rule.name}`] = rule.rule;
|
|
61
|
-
}
|
|
62
|
-
} else {
|
|
63
|
-
throw new Error(
|
|
64
|
-
`${rule.name} in ${prefix ?? "(unknown prefix)"} does not exist.`,
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return Object.fromEntries(
|
|
71
|
-
Object.entries(rules).sort(([a], [b]) => {
|
|
72
|
-
return a.localeCompare(b);
|
|
73
|
-
}),
|
|
74
|
-
);
|
|
75
|
-
};
|
package/src/setup/json.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import json from "@eslint/json";
|
|
2
|
-
import keys from "lodash/keys.js";
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
type CustomRules,
|
|
6
|
-
type EsLintRules,
|
|
7
|
-
genRules,
|
|
8
|
-
getNonDeprecatedRules,
|
|
9
|
-
} from "./gen-rules.ts";
|
|
10
|
-
|
|
11
|
-
const ruleNames = keys(
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
13
|
-
getNonDeprecatedRules(json.rules as unknown as EsLintRules),
|
|
14
|
-
);
|
|
15
|
-
const customRules: CustomRules = [];
|
|
16
|
-
|
|
17
|
-
export const jsonRules = genRules(ruleNames, customRules, "json");
|
package/src/setup/lodash.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// @ts-expect-error no types
|
|
2
|
-
import lodash from "eslint-plugin-lodash";
|
|
3
|
-
import keys from "lodash/keys.js";
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
type EsLintRules,
|
|
7
|
-
genRules,
|
|
8
|
-
getNonDeprecatedRules,
|
|
9
|
-
} from "./gen-rules.ts";
|
|
10
|
-
|
|
11
|
-
const ruleNames = keys(
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion,@typescript-eslint/no-unsafe-member-access
|
|
13
|
-
getNonDeprecatedRules(lodash.rules as unknown as EsLintRules),
|
|
14
|
-
);
|
|
15
|
-
const customRules = [
|
|
16
|
-
{
|
|
17
|
-
name: "chain-style",
|
|
18
|
-
rule: [2, "as-needed"],
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: "consistent-compose",
|
|
22
|
-
rule: [2, "flow"],
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "identity-shorthand",
|
|
26
|
-
rule: [2, "always"],
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "import-scope",
|
|
30
|
-
rule: [2, "method"],
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "matches-prop-shorthand",
|
|
34
|
-
rule: [2, "always"],
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "matches-shorthand",
|
|
38
|
-
rule: [2, "always", 3],
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "path-style",
|
|
42
|
-
rule: [2, "array"],
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "prefer-includes",
|
|
46
|
-
rule: [2, { includeNative: true }],
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "prefer-some",
|
|
50
|
-
rule: [2, { includeNative: true }],
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "prop-shorthand",
|
|
54
|
-
rule: [2, "always"],
|
|
55
|
-
},
|
|
56
|
-
];
|
|
57
|
-
|
|
58
|
-
export const lodashRules = genRules(ruleNames, customRules, "lodash");
|
package/src/setup/markdown.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import markdown from "@eslint/markdown";
|
|
2
|
-
import isNil from "lodash/isNil.js";
|
|
3
|
-
import keys from "lodash/keys.js";
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
type CustomRules,
|
|
7
|
-
genRules,
|
|
8
|
-
getNonDeprecatedRules,
|
|
9
|
-
} from "./gen-rules.ts";
|
|
10
|
-
|
|
11
|
-
const ruleNames = keys(
|
|
12
|
-
getNonDeprecatedRules(isNil(markdown.rules) ? {} : markdown.rules),
|
|
13
|
-
);
|
|
14
|
-
const customRules: CustomRules = [];
|
|
15
|
-
|
|
16
|
-
export const markdownRules = genRules(ruleNames, customRules, "markdown");
|