@standard-config/eslint 1.2.1 → 1.3.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/README.md +2 -1
- package/dist/index.d.mts +22 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +142 -195
- package/dist/index.mjs.map +1 -1
- package/package.json +19 -19
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# @standard-config/eslint
|
|
6
6
|
|
|
7
|
-
TypeScript-first ESLint config designed to complement
|
|
7
|
+
TypeScript-first ESLint config designed to complement [**@standard-config/oxlint**](https://github.com/standard-config/oxlint). Enforces rules not yet [implemented in Oxlint](https://github.com/oxc-project/oxc/issues/481).
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
@@ -42,6 +42,7 @@ export default defineConfig({
|
|
|
42
42
|
|
|
43
43
|
## Related
|
|
44
44
|
|
|
45
|
+
- [**@standard-config/oxlint**](https://github.com/standard-config/oxlint)
|
|
45
46
|
- [**@standard-config/prettier**](https://github.com/standard-config/prettier)
|
|
46
47
|
- [**@standard-config/tsconfig**](https://github.com/standard-config/tsconfig)
|
|
47
48
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import { Config, defineConfig as defineConfig$1 } from "eslint/config";
|
|
2
|
+
import { Linter } from "eslint";
|
|
2
3
|
|
|
4
|
+
//#region src/types/index.d.ts
|
|
5
|
+
type LinterConfigEntry = Omit<Linter.Config, 'files'>;
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/config-base/index.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* This config is intentionally limited to rules not supported by Oxlint
|
|
10
|
+
* and formatting options not supported by Prettier.
|
|
11
|
+
*/
|
|
12
|
+
declare const config: LinterConfigEntry;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/config-config-files/index.d.ts
|
|
15
|
+
declare const config$1: LinterConfigEntry;
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/config-react/index.d.ts
|
|
18
|
+
/**
|
|
19
|
+
* This config is intentionally limited to rules not supported by Oxlint
|
|
20
|
+
* and formatting options not supported by Prettier.
|
|
21
|
+
*/
|
|
22
|
+
declare const config$2: LinterConfigEntry;
|
|
23
|
+
//#endregion
|
|
3
24
|
//#region src/define-config/index.d.ts
|
|
4
25
|
/**
|
|
5
26
|
* Combine Standard Config with optional additional config.
|
|
6
27
|
*/
|
|
7
28
|
declare function defineConfig(...configs: Parameters<typeof defineConfig$1>): Config[];
|
|
8
29
|
//#endregion
|
|
9
|
-
export { defineConfig };
|
|
30
|
+
export { config as configBase, config$1 as configConfigFiles, config$2 as configReact, defineConfig };
|
|
10
31
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/define-config/index.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["Linter","LinterConfigEntry","Config","Omit"],"sources":["../src/types/index.d.ts","../src/config-base/index.ts","../src/config-config-files/index.ts","../src/config-react/index.ts","../src/define-config/index.ts"],"mappings":";;;;KAEYC,iBAAAA,GAAoBE,IAAAA,CAAKH,MAAAA,CAAOE,MAAAA;;;;;;AAA5C;cCMM,MAAA,EAAQ,iBAAA;;;cCLR,QAAA,EAAQ,iBAAA;;;;;;AFDd;cGQM,QAAA,EAAQ,iBAAA;;;;;AHRd;iBISwB,YAAA,CAAA,GACpB,OAAA,EAAS,UAAA,QAAkB,cAAA,IAC5B,MAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,122 +1,49 @@
|
|
|
1
|
-
import { defineConfig as defineConfig$1 } from "eslint/config";
|
|
2
1
|
import pluginPerfectionist from "eslint-plugin-perfectionist";
|
|
2
|
+
import tseslint from "typescript-eslint";
|
|
3
|
+
import pluginReact from "eslint-plugin-react";
|
|
4
|
+
import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
5
|
+
import pluginOxlint from "eslint-plugin-oxlint";
|
|
6
|
+
import { defineConfig as defineConfig$1 } from "eslint/config";
|
|
3
7
|
import { includeIgnoreFile } from "@eslint/compat";
|
|
4
8
|
import fs from "node:fs";
|
|
5
9
|
import path from "node:path";
|
|
6
|
-
import pluginOxlint from "eslint-plugin-oxlint";
|
|
7
|
-
import pluginPrettier from "eslint-plugin-prettier/recommended";
|
|
8
|
-
import pluginReact from "eslint-plugin-react";
|
|
9
|
-
import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
10
|
-
import tseslint from "typescript-eslint";
|
|
11
|
-
|
|
12
|
-
//#region src/config-formatting-config-files/index.ts
|
|
13
|
-
const config$8 = {
|
|
14
|
-
name: "Formatting (Config Files)",
|
|
15
|
-
plugins: { perfectionist: pluginPerfectionist },
|
|
16
|
-
rules: { "perfectionist/sort-objects": ["error", {
|
|
17
|
-
customGroups: [
|
|
18
|
-
{
|
|
19
|
-
groupName: "extends",
|
|
20
|
-
elementNamePattern: "^extends$"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
groupName: "files",
|
|
24
|
-
elementNamePattern: "^files$"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
groupName: "ignores",
|
|
28
|
-
elementNamePattern: "^(ignores|ignorePatterns)$"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
groupName: "name",
|
|
32
|
-
elementNamePattern: "^(name|groupName)$"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
groupName: "overrides",
|
|
36
|
-
elementNamePattern: "^overrides$"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
groupName: "plugins",
|
|
40
|
-
elementNamePattern: "^plugins$"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
groupName: "rules",
|
|
44
|
-
elementNamePattern: "^rules$"
|
|
45
|
-
}
|
|
46
|
-
],
|
|
47
|
-
groups: [
|
|
48
|
-
"name",
|
|
49
|
-
"files",
|
|
50
|
-
"extends",
|
|
51
|
-
"ignores",
|
|
52
|
-
"plugins",
|
|
53
|
-
"unknown",
|
|
54
|
-
"rules",
|
|
55
|
-
"overrides"
|
|
56
|
-
],
|
|
57
|
-
newlinesBetween: 0,
|
|
58
|
-
type: "natural"
|
|
59
|
-
}] }
|
|
60
|
-
};
|
|
61
|
-
var config_formatting_config_files_default = config$8;
|
|
62
10
|
|
|
63
|
-
//#
|
|
64
|
-
//#region src/config-formatting-react/index.ts
|
|
65
|
-
const config$7 = {
|
|
66
|
-
name: "Formatting (React)",
|
|
67
|
-
plugins: { perfectionist: pluginPerfectionist },
|
|
68
|
-
rules: { "perfectionist/sort-jsx-props": ["error", {
|
|
69
|
-
customGroups: [
|
|
70
|
-
{
|
|
71
|
-
groupName: "as",
|
|
72
|
-
elementNamePattern: "^as$"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
groupName: "callback",
|
|
76
|
-
elementNamePattern: "^on.+"
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
groupName: "children",
|
|
80
|
-
elementNamePattern: "^children$"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
groupName: "key",
|
|
84
|
-
elementNamePattern: "^key$"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
groupName: "ref",
|
|
88
|
-
elementNamePattern: "^ref$"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
groupName: "unsafe",
|
|
92
|
-
elementNamePattern: "^dangerously.+"
|
|
93
|
-
}
|
|
94
|
-
],
|
|
95
|
-
groups: [
|
|
96
|
-
"key",
|
|
97
|
-
"ref",
|
|
98
|
-
"as",
|
|
99
|
-
"unknown",
|
|
100
|
-
"shorthand-prop",
|
|
101
|
-
"callback",
|
|
102
|
-
"children",
|
|
103
|
-
"unsafe"
|
|
104
|
-
],
|
|
105
|
-
type: "unsorted"
|
|
106
|
-
}] }
|
|
107
|
-
};
|
|
108
|
-
var config_formatting_react_default = config$7;
|
|
109
|
-
|
|
110
|
-
//#endregion
|
|
111
|
-
//#region src/config-formatting/index.ts
|
|
11
|
+
//#region src/config-base/index.ts
|
|
112
12
|
/**
|
|
113
|
-
* This config is intentionally limited to
|
|
114
|
-
* not supported by Prettier.
|
|
13
|
+
* This config is intentionally limited to rules not supported by Oxlint
|
|
14
|
+
* and formatting options not supported by Prettier.
|
|
115
15
|
*/
|
|
116
|
-
const config
|
|
117
|
-
name: "
|
|
118
|
-
plugins: {
|
|
16
|
+
const config = {
|
|
17
|
+
name: "Base Config",
|
|
18
|
+
plugins: {
|
|
19
|
+
"@typescript-eslint": tseslint.plugin,
|
|
20
|
+
"perfectionist": pluginPerfectionist
|
|
21
|
+
},
|
|
22
|
+
languageOptions: {
|
|
23
|
+
parser: tseslint.parser,
|
|
24
|
+
parserOptions: { projectService: true }
|
|
25
|
+
},
|
|
26
|
+
linterOptions: {
|
|
27
|
+
reportUnusedDisableDirectives: "error",
|
|
28
|
+
reportUnusedInlineConfigs: "error"
|
|
29
|
+
},
|
|
119
30
|
rules: {
|
|
31
|
+
"camelcase": ["error", { properties: "always" }],
|
|
32
|
+
"dot-notation": "error",
|
|
33
|
+
"func-name-matching": [
|
|
34
|
+
"error",
|
|
35
|
+
"never",
|
|
36
|
+
{ considerPropertyDescriptor: true }
|
|
37
|
+
],
|
|
38
|
+
"@typescript-eslint/consistent-type-assertions": ["error", {
|
|
39
|
+
assertionStyle: "as",
|
|
40
|
+
objectLiteralTypeAssertions: "allow-as-parameter"
|
|
41
|
+
}],
|
|
42
|
+
"@typescript-eslint/consistent-type-exports": ["error", { fixMixedExportsWithInlineTypeSpecifier: true }],
|
|
43
|
+
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
|
44
|
+
"@typescript-eslint/no-useless-default-assignment": "error",
|
|
45
|
+
"@typescript-eslint/parameter-properties": ["error", { prefer: "parameter-property" }],
|
|
46
|
+
"@typescript-eslint/prefer-readonly": "error",
|
|
120
47
|
"perfectionist/sort-array-includes": ["error", { type: "natural" }],
|
|
121
48
|
"perfectionist/sort-classes": ["error", {
|
|
122
49
|
groups: ["property", "constructor"],
|
|
@@ -217,41 +144,111 @@ const config$6 = {
|
|
|
217
144
|
}]
|
|
218
145
|
}
|
|
219
146
|
};
|
|
220
|
-
var config_formatting_default = config$6;
|
|
221
|
-
|
|
222
|
-
//#endregion
|
|
223
|
-
//#region src/config-ignores/index.ts
|
|
224
|
-
const configPath$2 = path.resolve(".gitignore");
|
|
225
|
-
const config$5 = [fs.existsSync(configPath$2) ? includeIgnoreFile(configPath$2, ".gitignore") : {}, {
|
|
226
|
-
name: "Ignored Paths",
|
|
227
|
-
ignores: ["**/fixtures/**"]
|
|
228
|
-
}];
|
|
229
|
-
var config_ignores_default = config$5;
|
|
230
147
|
|
|
231
148
|
//#endregion
|
|
232
|
-
//#region src/config-
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
149
|
+
//#region src/config-config-files/index.ts
|
|
150
|
+
const config$1 = {
|
|
151
|
+
name: "Config Files",
|
|
152
|
+
plugins: { perfectionist: pluginPerfectionist },
|
|
153
|
+
rules: { "perfectionist/sort-objects": ["error", {
|
|
154
|
+
customGroups: [
|
|
155
|
+
{
|
|
156
|
+
groupName: "extends",
|
|
157
|
+
elementNamePattern: "^extends$"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
groupName: "files",
|
|
161
|
+
elementNamePattern: "^files$"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
groupName: "ignores",
|
|
165
|
+
elementNamePattern: "^(ignores|ignorePatterns)$"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
groupName: "name",
|
|
169
|
+
elementNamePattern: "^(name|groupName)$"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
groupName: "overrides",
|
|
173
|
+
elementNamePattern: "^overrides$"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
groupName: "plugins",
|
|
177
|
+
elementNamePattern: "^plugins$"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
groupName: "rules",
|
|
181
|
+
elementNamePattern: "^rules$"
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
groups: [
|
|
185
|
+
"name",
|
|
186
|
+
"files",
|
|
187
|
+
"extends",
|
|
188
|
+
"ignores",
|
|
189
|
+
"plugins",
|
|
190
|
+
"unknown",
|
|
191
|
+
"rules",
|
|
192
|
+
"overrides"
|
|
193
|
+
],
|
|
194
|
+
newlinesBetween: 0,
|
|
195
|
+
type: "natural"
|
|
196
|
+
}] }
|
|
197
|
+
};
|
|
242
198
|
|
|
243
199
|
//#endregion
|
|
244
200
|
//#region src/config-react/index.ts
|
|
245
201
|
/**
|
|
246
|
-
* This config is intentionally limited to rules not supported by Oxlint
|
|
202
|
+
* This config is intentionally limited to rules not supported by Oxlint
|
|
203
|
+
* and formatting options not supported by Prettier.
|
|
247
204
|
*/
|
|
248
205
|
const config$2 = {
|
|
249
206
|
name: "React",
|
|
250
207
|
plugins: {
|
|
208
|
+
"perfectionist": pluginPerfectionist,
|
|
251
209
|
"react": pluginReact,
|
|
252
210
|
"react-hooks": pluginReactHooks
|
|
253
211
|
},
|
|
254
212
|
rules: {
|
|
213
|
+
"perfectionist/sort-jsx-props": ["error", {
|
|
214
|
+
customGroups: [
|
|
215
|
+
{
|
|
216
|
+
groupName: "as",
|
|
217
|
+
elementNamePattern: "^as$"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
groupName: "callback",
|
|
221
|
+
elementNamePattern: "^on.+"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
groupName: "children",
|
|
225
|
+
elementNamePattern: "^children$"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
groupName: "key",
|
|
229
|
+
elementNamePattern: "^key$"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
groupName: "ref",
|
|
233
|
+
elementNamePattern: "^ref$"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
groupName: "unsafe",
|
|
237
|
+
elementNamePattern: "^dangerously.+"
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
groups: [
|
|
241
|
+
"key",
|
|
242
|
+
"ref",
|
|
243
|
+
"as",
|
|
244
|
+
"unknown",
|
|
245
|
+
"shorthand-prop",
|
|
246
|
+
"callback",
|
|
247
|
+
"children",
|
|
248
|
+
"unsafe"
|
|
249
|
+
],
|
|
250
|
+
type: "unsorted"
|
|
251
|
+
}],
|
|
255
252
|
"react/destructuring-assignment": ["error", "always"],
|
|
256
253
|
"react/function-component-definition": ["error", {
|
|
257
254
|
namedComponents: ["arrow-function", "function-declaration"],
|
|
@@ -264,51 +261,11 @@ const config$2 = {
|
|
|
264
261
|
...Object.fromEntries(Object.keys(pluginReactHooks.configs.flat["recommended-latest"].rules).map((rule) => [rule, "error"]))
|
|
265
262
|
}
|
|
266
263
|
};
|
|
267
|
-
var config_react_default = config$2;
|
|
268
|
-
|
|
269
|
-
//#endregion
|
|
270
|
-
//#region src/config-typescript-settings/index.ts
|
|
271
|
-
const config$1 = {
|
|
272
|
-
name: "TypeScript (Linter Settings)",
|
|
273
|
-
languageOptions: {
|
|
274
|
-
parser: tseslint.parser,
|
|
275
|
-
parserOptions: { projectService: true }
|
|
276
|
-
},
|
|
277
|
-
linterOptions: {
|
|
278
|
-
reportUnusedDisableDirectives: "error",
|
|
279
|
-
reportUnusedInlineConfigs: "error"
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
var config_typescript_settings_default = config$1;
|
|
283
264
|
|
|
284
265
|
//#endregion
|
|
285
|
-
//#region src/config-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
*/
|
|
289
|
-
const config = {
|
|
290
|
-
name: "TypeScript",
|
|
291
|
-
plugins: { "@typescript-eslint": tseslint.plugin },
|
|
292
|
-
rules: {
|
|
293
|
-
"camelcase": ["error", { properties: "always" }],
|
|
294
|
-
"dot-notation": "error",
|
|
295
|
-
"func-name-matching": [
|
|
296
|
-
"error",
|
|
297
|
-
"never",
|
|
298
|
-
{ considerPropertyDescriptor: true }
|
|
299
|
-
],
|
|
300
|
-
"@typescript-eslint/consistent-type-assertions": ["error", {
|
|
301
|
-
assertionStyle: "as",
|
|
302
|
-
objectLiteralTypeAssertions: "allow-as-parameter"
|
|
303
|
-
}],
|
|
304
|
-
"@typescript-eslint/consistent-type-exports": ["error", { fixMixedExportsWithInlineTypeSpecifier: true }],
|
|
305
|
-
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
|
306
|
-
"@typescript-eslint/no-useless-default-assignment": "error",
|
|
307
|
-
"@typescript-eslint/parameter-properties": ["error", { prefer: "parameter-property" }],
|
|
308
|
-
"@typescript-eslint/prefer-readonly": "error"
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
var config_typescript_default = config;
|
|
266
|
+
//#region src/config-ignores/index.ts
|
|
267
|
+
const configPath = path.resolve(".gitignore");
|
|
268
|
+
const config$3 = fs.existsSync(configPath) ? includeIgnoreFile(configPath, ".gitignore") : {};
|
|
312
269
|
|
|
313
270
|
//#endregion
|
|
314
271
|
//#region src/define-config/index.ts
|
|
@@ -321,17 +278,14 @@ function defineConfig(...configs) {
|
|
|
321
278
|
name: "Standard Config",
|
|
322
279
|
files: ["**/*.{ts,tsx,cts,mts}"],
|
|
323
280
|
extends: [
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
config_typescript_default,
|
|
327
|
-
config_formatting_default,
|
|
281
|
+
config$3,
|
|
282
|
+
config,
|
|
328
283
|
{
|
|
329
|
-
files: ["**/*.config
|
|
330
|
-
...
|
|
284
|
+
files: ["**/*.config.{ts,cts,mts}"],
|
|
285
|
+
...config$1
|
|
331
286
|
},
|
|
332
287
|
includeReactConfig(configExtension),
|
|
333
|
-
|
|
334
|
-
config_prettier_default
|
|
288
|
+
pluginOxlint.configs["flat/all"]
|
|
335
289
|
]
|
|
336
290
|
});
|
|
337
291
|
}
|
|
@@ -342,19 +296,12 @@ function includeReactConfig(configs) {
|
|
|
342
296
|
break;
|
|
343
297
|
}
|
|
344
298
|
if (!react) return configs;
|
|
345
|
-
return [
|
|
346
|
-
{
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
files: ["**/*.tsx"],
|
|
352
|
-
...config_formatting_react_default
|
|
353
|
-
},
|
|
354
|
-
...configs
|
|
355
|
-
];
|
|
299
|
+
return [{
|
|
300
|
+
settings: { react },
|
|
301
|
+
...config$2
|
|
302
|
+
}, ...configs];
|
|
356
303
|
}
|
|
357
304
|
|
|
358
305
|
//#endregion
|
|
359
|
-
export { defineConfig };
|
|
306
|
+
export { config as configBase, config$1 as configConfigFiles, config$2 as configReact, defineConfig };
|
|
360
307
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["config","config","config","configPath","config","_includeIgnoreFile","configPath","config","config","config","config","eslintDefineConfig","configIgnores","configTypeScriptSettings","configTypeScript","configFormatting","configFormattingConfigFiles","configOxlint","configPrettier","configReact","configFormattingReact"],"sources":["../src/config-formatting-config-files/index.ts","../src/config-formatting-react/index.ts","../src/config-formatting/index.ts","../src/config-ignores/index.ts","../src/config-oxlint/index.ts","../src/config-prettier/index.ts","../src/config-react/index.ts","../src/config-typescript-settings/index.ts","../src/config-typescript/index.ts","../src/define-config/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\n\nconst config: Linter.Config = {\n\tname: 'Formatting (Config Files)',\n\tplugins: {\n\t\tperfectionist: pluginPerfectionist,\n\t},\n\trules: {\n\t\t'perfectionist/sort-objects': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'extends',\n\t\t\t\t\t\telementNamePattern: '^extends$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'files',\n\t\t\t\t\t\telementNamePattern: '^files$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'ignores',\n\t\t\t\t\t\telementNamePattern: '^(ignores|ignorePatterns)$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'name',\n\t\t\t\t\t\telementNamePattern: '^(name|groupName)$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'overrides',\n\t\t\t\t\t\telementNamePattern: '^overrides$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'plugins',\n\t\t\t\t\t\telementNamePattern: '^plugins$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'rules',\n\t\t\t\t\t\telementNamePattern: '^rules$',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'name',\n\t\t\t\t\t'files',\n\t\t\t\t\t'extends',\n\t\t\t\t\t'ignores',\n\t\t\t\t\t'plugins',\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'rules',\n\t\t\t\t\t'overrides',\n\t\t\t\t],\n\t\t\t\tnewlinesBetween: 0,\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t},\n};\n\nexport default config;\n","import type { Linter } from 'eslint';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\n\nconst config: Linter.Config = {\n\tname: 'Formatting (React)',\n\tplugins: {\n\t\tperfectionist: pluginPerfectionist,\n\t},\n\trules: {\n\t\t'perfectionist/sort-jsx-props': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'as',\n\t\t\t\t\t\telementNamePattern: '^as$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'callback',\n\t\t\t\t\t\telementNamePattern: '^on.+',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'children',\n\t\t\t\t\t\telementNamePattern: '^children$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'key',\n\t\t\t\t\t\telementNamePattern: '^key$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'ref',\n\t\t\t\t\t\telementNamePattern: '^ref$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'unsafe',\n\t\t\t\t\t\telementNamePattern: '^dangerously.+',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'key',\n\t\t\t\t\t'ref',\n\t\t\t\t\t'as',\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'shorthand-prop',\n\t\t\t\t\t'callback',\n\t\t\t\t\t'children',\n\t\t\t\t\t'unsafe',\n\t\t\t\t],\n\t\t\t\ttype: 'unsorted',\n\t\t\t},\n\t\t],\n\t},\n};\n\nexport default config;\n","import type { Linter } from 'eslint';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\n\n/**\n * This config is intentionally limited to formatting options\n * not supported by Prettier.\n */\nconst config: Linter.Config = {\n\tname: 'Formatting',\n\tplugins: {\n\t\tperfectionist: pluginPerfectionist,\n\t},\n\trules: {\n\t\t'perfectionist/sort-array-includes': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-classes': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tgroups: ['property', 'constructor'],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-exports': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-imports': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'mock-side-effect',\n\t\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tselector: 'side-effect',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'mock',\n\t\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tselector: 'import',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'mock-side-effect',\n\t\t\t\t\t'mock',\n\t\t\t\t\t['type-builtin', 'type-external'],\n\t\t\t\t\t'type-internal',\n\t\t\t\t\t['type-parent', 'type-sibling', 'type-index'],\n\t\t\t\t\t['value-builtin', 'value-external'],\n\t\t\t\t\t'value-internal',\n\t\t\t\t\t['value-parent', 'value-sibling', 'value-index'],\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'style',\n\t\t\t\t\t'side-effect',\n\t\t\t\t\t'side-effect-style',\n\t\t\t\t],\n\t\t\t\tinternalPattern: ['^(#|@/).*'],\n\t\t\t\tnewlinesBetween: 0,\n\t\t\t\tsortSideEffects: true,\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-interfaces': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-intersection-types': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-named-exports': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-named-imports': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-object-types': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-objects': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\ttype: 'natural',\n\t\t\t\tuseConfigurationIf: {\n\t\t\t\t\tobjectType: 'destructured',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'unsorted',\n\t\t\t\tuseConfigurationIf: {\n\t\t\t\t\tobjectType: 'non-destructured',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-union-types': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'false',\n\t\t\t\t\t\telementNamePattern: '^false$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'never',\n\t\t\t\t\t\telementNamePattern: '^never$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'react',\n\t\t\t\t\t\telementNamePattern: '^react.+',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'react',\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'tuple',\n\t\t\t\t\t'false',\n\t\t\t\t\t'nullish',\n\t\t\t\t\t'never',\n\t\t\t\t],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t},\n};\n\nexport default config;\n","import type { Linter } from 'eslint';\nimport { includeIgnoreFile as _includeIgnoreFile } from '@eslint/compat';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst configPath = path.resolve('.gitignore');\nconst configExists = fs.existsSync(configPath);\n\nconst config: Linter.Config[] = [\n\tconfigExists ? _includeIgnoreFile(configPath, '.gitignore') : {},\n\t{\n\t\tname: 'Ignored Paths',\n\t\tignores: ['**/fixtures/**'],\n\t},\n];\n\nexport default config;\n","import type { Linter } from 'eslint';\nimport pluginOxlint from 'eslint-plugin-oxlint';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst configPath = path.resolve('.oxlintrc.json');\nconst configExists = fs.existsSync(configPath);\n\nconst config: Linter.Config[] = configExists\n\t? pluginOxlint.buildFromOxlintConfigFile(configPath, {\n\t\t\ttypeAware: true,\n\t\t})\n\t: [];\n\nexport default config;\n","import type { Linter } from 'eslint';\nimport pluginPrettier from 'eslint-plugin-prettier/recommended';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst configPath = path.resolve('prettier.config.ts');\nconst configExists = fs.existsSync(configPath);\n\nconst config: Linter.Config = configExists ? pluginPrettier : {};\n\nexport default config;\n","import type { ESLint, Linter } from 'eslint';\nimport pluginReact from 'eslint-plugin-react';\nimport pluginReactHooks from 'eslint-plugin-react-hooks';\n\n/**\n * This config is intentionally limited to rules not supported by Oxlint.\n */\nconst config: Linter.Config = {\n\tname: 'React',\n\tplugins: {\n\t\t'react': pluginReact,\n\t\t'react-hooks': pluginReactHooks as ESLint.Plugin,\n\t},\n\trules: {\n\t\t'react/destructuring-assignment': ['error', 'always'],\n\t\t'react/function-component-definition': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tnamedComponents: ['arrow-function', 'function-declaration'],\n\t\t\t\tunnamedComponents: 'arrow-function',\n\t\t\t},\n\t\t],\n\t\t'react/hook-use-state': 'error',\n\t\t'react/jsx-no-constructed-context-values': 'error',\n\t\t'react/no-adjacent-inline-elements': 'error',\n\t\t'react/no-unstable-nested-components': 'error',\n\n\t\t// Enforce all `react-hooks` rules as errors\n\t\t...Object.fromEntries(\n\t\t\tObject.keys(\n\t\t\t\tpluginReactHooks.configs.flat['recommended-latest'].rules\n\t\t\t).map((rule) => [rule, 'error'])\n\t\t),\n\t},\n};\n\nexport default config;\n","import type { Linter } from 'eslint';\nimport tseslint from 'typescript-eslint';\n\nconst config: Linter.Config = {\n\tname: 'TypeScript (Linter Settings)',\n\tlanguageOptions: {\n\t\tparser: tseslint.parser,\n\t\tparserOptions: {\n\t\t\tprojectService: true,\n\t\t},\n\t},\n\tlinterOptions: {\n\t\treportUnusedDisableDirectives: 'error',\n\t\treportUnusedInlineConfigs: 'error',\n\t},\n};\n\nexport default config;\n","import type { Linter } from 'eslint';\nimport tseslint from 'typescript-eslint';\n\n/**\n * This config is intentionally limited to rules not supported by Oxlint.\n */\nconst config: Linter.Config = {\n\tname: 'TypeScript',\n\tplugins: {\n\t\t'@typescript-eslint': tseslint.plugin,\n\t},\n\trules: {\n\t\t/* oxlint-disable-next-line unicorn/no-useless-spread */\n\t\t...{\n\t\t\t'camelcase': ['error', { properties: 'always' }],\n\t\t\t'dot-notation': 'error',\n\t\t\t'func-name-matching': [\n\t\t\t\t'error',\n\t\t\t\t'never',\n\t\t\t\t{ considerPropertyDescriptor: true },\n\t\t\t],\n\t\t},\n\t\t'@typescript-eslint/consistent-type-assertions': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tassertionStyle: 'as',\n\t\t\t\tobjectLiteralTypeAssertions: 'allow-as-parameter',\n\t\t\t},\n\t\t],\n\t\t'@typescript-eslint/consistent-type-exports': [\n\t\t\t'error',\n\t\t\t{ fixMixedExportsWithInlineTypeSpecifier: true },\n\t\t],\n\t\t'@typescript-eslint/no-unnecessary-qualifier': 'error',\n\t\t'@typescript-eslint/no-useless-default-assignment': 'error',\n\t\t'@typescript-eslint/parameter-properties': [\n\t\t\t'error',\n\t\t\t{ prefer: 'parameter-property' },\n\t\t],\n\t\t'@typescript-eslint/prefer-readonly': 'error',\n\t},\n};\n\nexport default config;\n","import type { Config } from 'eslint/config';\nimport { defineConfig as eslintDefineConfig } from 'eslint/config';\nimport configFormattingConfigFiles from '../config-formatting-config-files/index.ts';\nimport configFormattingReact from '../config-formatting-react/index.ts';\nimport configFormatting from '../config-formatting/index.ts';\nimport configIgnores from '../config-ignores/index.ts';\nimport configOxlint from '../config-oxlint/index.ts';\nimport configPrettier from '../config-prettier/index.ts';\nimport configReact from '../config-react/index.ts';\nimport configTypeScriptSettings from '../config-typescript-settings/index.ts';\nimport configTypeScript from '../config-typescript/index.ts';\n\n/**\n * Combine Standard Config with optional additional config.\n */\nexport default function defineConfig(\n\t...configs: Parameters<typeof eslintDefineConfig>\n): Config[] {\n\tconst configExtension =\n\t\tconfigs.length > 0 ? eslintDefineConfig(...configs) : [];\n\n\treturn eslintDefineConfig({\n\t\tname: 'Standard Config',\n\t\tfiles: ['**/*.{ts,tsx,cts,mts}'],\n\t\textends: [\n\t\t\tconfigIgnores,\n\t\t\tconfigTypeScriptSettings,\n\t\t\tconfigTypeScript,\n\t\t\tconfigFormatting,\n\t\t\t{\n\t\t\t\tfiles: ['**/*.config.*'],\n\t\t\t\t...configFormattingConfigFiles,\n\t\t\t},\n\t\t\tincludeReactConfig(configExtension),\n\t\t\tconfigOxlint,\n\t\t\tconfigPrettier,\n\t\t],\n\t});\n}\n\nfunction includeReactConfig(configs: Config[]): Config[] {\n\tlet react: unknown;\n\n\tfor (const { settings } of configs.toReversed()) {\n\t\tif (settings?.react && typeof settings?.react === 'object') {\n\t\t\treact = settings.react;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!react) {\n\t\treturn configs;\n\t}\n\n\treturn [\n\t\t{\n\t\t\tsettings: { react },\n\t\t\t...configReact,\n\t\t},\n\t\t{\n\t\t\tfiles: ['**/*.tsx'],\n\t\t\t...configFormattingReact,\n\t\t},\n\t\t...configs,\n\t];\n}\n"],"mappings":";;;;;;;;;;;;AAGA,MAAMA,WAAwB;CAC7B,MAAM;CACN,SAAS,EACR,eAAe,qBACf;CACD,OAAO,EACN,8BAA8B,CAC7B,SACA;EACC,cAAc;GACb;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;EACD,QAAQ;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,iBAAiB;EACjB,MAAM;EACN,CACD,EACD;CACD;AAED,6CAAeA;;;;ACxDf,MAAMC,WAAwB;CAC7B,MAAM;CACN,SAAS,EACR,eAAe,qBACf;CACD,OAAO,EACN,gCAAgC,CAC/B,SACA;EACC,cAAc;GACb;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;EACD,QAAQ;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,MAAM;EACN,CACD,EACD;CACD;AAED,sCAAeA;;;;;;;;AC/Cf,MAAMC,WAAwB;CAC7B,MAAM;CACN,SAAS,EACR,eAAe,qBACf;CACD,OAAO;EACN,qCAAqC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;EACnE,8BAA8B,CAC7B,SACA;GACC,QAAQ,CAAC,YAAY,cAAc;GACnC,MAAM;GACN,CACD;EACD,8BAA8B,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;EAC5D,8BAA8B,CAC7B,SACA;GACC,cAAc,CACb;IACC,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,EACD;IACC,WAAW;IACX,oBAAoB;IACpB,UAAU;IAC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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["config","config","config","_includeIgnoreFile","eslintDefineConfig","configIgnores","configBase","configConfigFiles","configReact"],"sources":["../src/config-base/index.ts","../src/config-config-files/index.ts","../src/config-react/index.ts","../src/config-ignores/index.ts","../src/define-config/index.ts"],"sourcesContent":["import type { LinterConfigEntry } from '../types/index.d.ts';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport tseslint from 'typescript-eslint';\n\n/**\n * This config is intentionally limited to rules not supported by Oxlint\n * and formatting options not supported by Prettier.\n */\nconst config: LinterConfigEntry = {\n\tname: 'Base Config',\n\tplugins: {\n\t\t'@typescript-eslint': tseslint.plugin,\n\t\t'perfectionist': pluginPerfectionist,\n\t},\n\tlanguageOptions: {\n\t\tparser: tseslint.parser,\n\t\tparserOptions: {\n\t\t\tprojectService: true,\n\t\t},\n\t},\n\tlinterOptions: {\n\t\treportUnusedDisableDirectives: 'error',\n\t\treportUnusedInlineConfigs: 'error',\n\t},\n\trules: {\n\t\t/* oxlint-disable-next-line unicorn/no-useless-spread */\n\t\t...{\n\t\t\t'camelcase': ['error', { properties: 'always' }],\n\t\t\t'dot-notation': 'error',\n\t\t\t'func-name-matching': [\n\t\t\t\t'error',\n\t\t\t\t'never',\n\t\t\t\t{ considerPropertyDescriptor: true },\n\t\t\t],\n\t\t},\n\t\t'@typescript-eslint/consistent-type-assertions': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tassertionStyle: 'as',\n\t\t\t\tobjectLiteralTypeAssertions: 'allow-as-parameter',\n\t\t\t},\n\t\t],\n\t\t'@typescript-eslint/consistent-type-exports': [\n\t\t\t'error',\n\t\t\t{ fixMixedExportsWithInlineTypeSpecifier: true },\n\t\t],\n\t\t'@typescript-eslint/no-unnecessary-qualifier': 'error',\n\t\t'@typescript-eslint/no-useless-default-assignment': 'error',\n\t\t'@typescript-eslint/parameter-properties': [\n\t\t\t'error',\n\t\t\t{ prefer: 'parameter-property' },\n\t\t],\n\t\t'@typescript-eslint/prefer-readonly': 'error',\n\t\t'perfectionist/sort-array-includes': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-classes': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tgroups: ['property', 'constructor'],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-exports': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-imports': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'mock-side-effect',\n\t\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tselector: 'side-effect',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'mock',\n\t\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tselector: 'import',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'mock-side-effect',\n\t\t\t\t\t'mock',\n\t\t\t\t\t['type-builtin', 'type-external'],\n\t\t\t\t\t'type-internal',\n\t\t\t\t\t['type-parent', 'type-sibling', 'type-index'],\n\t\t\t\t\t['value-builtin', 'value-external'],\n\t\t\t\t\t'value-internal',\n\t\t\t\t\t['value-parent', 'value-sibling', 'value-index'],\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'style',\n\t\t\t\t\t'side-effect',\n\t\t\t\t\t'side-effect-style',\n\t\t\t\t],\n\t\t\t\tinternalPattern: ['^(#|@/).*'],\n\t\t\t\tnewlinesBetween: 0,\n\t\t\t\tsortSideEffects: true,\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-interfaces': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-intersection-types': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-named-exports': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-named-imports': ['error', { type: 'natural' }],\n\t\t'perfectionist/sort-object-types': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-objects': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\ttype: 'natural',\n\t\t\t\tuseConfigurationIf: {\n\t\t\t\t\tobjectType: 'destructured',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'unsorted',\n\t\t\t\tuseConfigurationIf: {\n\t\t\t\t\tobjectType: 'non-destructured',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t'perfectionist/sort-union-types': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'false',\n\t\t\t\t\t\telementNamePattern: '^false$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'never',\n\t\t\t\t\t\telementNamePattern: '^never$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'react',\n\t\t\t\t\t\telementNamePattern: '^react.+',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'react',\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'tuple',\n\t\t\t\t\t'false',\n\t\t\t\t\t'nullish',\n\t\t\t\t\t'never',\n\t\t\t\t],\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t},\n};\n\nexport default config;\n","import type { LinterConfigEntry } from '../types/index.d.ts';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\n\nconst config: LinterConfigEntry = {\n\tname: 'Config Files',\n\tplugins: {\n\t\tperfectionist: pluginPerfectionist,\n\t},\n\trules: {\n\t\t'perfectionist/sort-objects': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'extends',\n\t\t\t\t\t\telementNamePattern: '^extends$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'files',\n\t\t\t\t\t\telementNamePattern: '^files$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'ignores',\n\t\t\t\t\t\telementNamePattern: '^(ignores|ignorePatterns)$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'name',\n\t\t\t\t\t\telementNamePattern: '^(name|groupName)$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'overrides',\n\t\t\t\t\t\telementNamePattern: '^overrides$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'plugins',\n\t\t\t\t\t\telementNamePattern: '^plugins$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'rules',\n\t\t\t\t\t\telementNamePattern: '^rules$',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'name',\n\t\t\t\t\t'files',\n\t\t\t\t\t'extends',\n\t\t\t\t\t'ignores',\n\t\t\t\t\t'plugins',\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'rules',\n\t\t\t\t\t'overrides',\n\t\t\t\t],\n\t\t\t\tnewlinesBetween: 0,\n\t\t\t\ttype: 'natural',\n\t\t\t},\n\t\t],\n\t},\n};\n\nexport default config;\n","import type { ESLint } from 'eslint';\nimport type { LinterConfigEntry } from '../types/index.d.ts';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport pluginReact from 'eslint-plugin-react';\nimport pluginReactHooks from 'eslint-plugin-react-hooks';\n\n/**\n * This config is intentionally limited to rules not supported by Oxlint\n * and formatting options not supported by Prettier.\n */\nconst config: LinterConfigEntry = {\n\tname: 'React',\n\tplugins: {\n\t\t'perfectionist': pluginPerfectionist,\n\t\t'react': pluginReact,\n\t\t'react-hooks': pluginReactHooks as ESLint.Plugin,\n\t},\n\trules: {\n\t\t'perfectionist/sort-jsx-props': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tcustomGroups: [\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'as',\n\t\t\t\t\t\telementNamePattern: '^as$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'callback',\n\t\t\t\t\t\telementNamePattern: '^on.+',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'children',\n\t\t\t\t\t\telementNamePattern: '^children$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'key',\n\t\t\t\t\t\telementNamePattern: '^key$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'ref',\n\t\t\t\t\t\telementNamePattern: '^ref$',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupName: 'unsafe',\n\t\t\t\t\t\telementNamePattern: '^dangerously.+',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tgroups: [\n\t\t\t\t\t'key',\n\t\t\t\t\t'ref',\n\t\t\t\t\t'as',\n\t\t\t\t\t'unknown',\n\t\t\t\t\t'shorthand-prop',\n\t\t\t\t\t'callback',\n\t\t\t\t\t'children',\n\t\t\t\t\t'unsafe',\n\t\t\t\t],\n\t\t\t\ttype: 'unsorted',\n\t\t\t},\n\t\t],\n\t\t'react/destructuring-assignment': ['error', 'always'],\n\t\t'react/function-component-definition': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tnamedComponents: ['arrow-function', 'function-declaration'],\n\t\t\t\tunnamedComponents: 'arrow-function',\n\t\t\t},\n\t\t],\n\t\t'react/hook-use-state': 'error',\n\t\t'react/jsx-no-constructed-context-values': 'error',\n\t\t'react/no-adjacent-inline-elements': 'error',\n\t\t'react/no-unstable-nested-components': 'error',\n\n\t\t// Enforce all `react-hooks` rules as errors\n\t\t...Object.fromEntries(\n\t\t\tObject.keys(\n\t\t\t\tpluginReactHooks.configs.flat['recommended-latest'].rules\n\t\t\t).map((rule) => [rule, 'error'])\n\t\t),\n\t},\n};\n\nexport default config;\n","import type { LinterConfigEntry } from '../types/index.d.ts';\nimport { includeIgnoreFile as _includeIgnoreFile } from '@eslint/compat';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst configPath = path.resolve('.gitignore');\nconst configExists = fs.existsSync(configPath);\n\nconst config: LinterConfigEntry = configExists\n\t? _includeIgnoreFile(configPath, '.gitignore')\n\t: {};\n\nexport default config;\n","import type { Config } from 'eslint/config';\nimport pluginOxlint from 'eslint-plugin-oxlint';\nimport { defineConfig as eslintDefineConfig } from 'eslint/config';\nimport configBase from '../config-base/index.ts';\nimport configConfigFiles from '../config-config-files/index.ts';\nimport configIgnores from '../config-ignores/index.ts';\nimport configReact from '../config-react/index.ts';\n\n/**\n * Combine Standard Config with optional additional config.\n */\nexport default function defineConfig(\n\t...configs: Parameters<typeof eslintDefineConfig>\n): Config[] {\n\tconst configExtension =\n\t\tconfigs.length > 0 ? eslintDefineConfig(...configs) : [];\n\n\treturn eslintDefineConfig({\n\t\tname: 'Standard Config',\n\t\tfiles: ['**/*.{ts,tsx,cts,mts}'],\n\t\textends: [\n\t\t\tconfigIgnores,\n\t\t\tconfigBase,\n\t\t\t{\n\t\t\t\tfiles: ['**/*.config.{ts,cts,mts}'],\n\t\t\t\t...configConfigFiles,\n\t\t\t},\n\t\t\tincludeReactConfig(configExtension),\n\t\t\tpluginOxlint.configs['flat/all'],\n\t\t],\n\t});\n}\n\nfunction includeReactConfig(configs: Config[]): Config[] {\n\tlet react: unknown;\n\n\tfor (const { settings } of configs.toReversed()) {\n\t\tif (settings?.react && typeof settings?.react === 'object') {\n\t\t\treact = settings.react;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!react) {\n\t\treturn configs;\n\t}\n\n\treturn [\n\t\t{\n\t\t\tsettings: { react },\n\t\t\t...configReact,\n\t\t},\n\t\t...configs,\n\t];\n}\n"],"mappings":";;;;;;;;;;;;;;;AAQA,MAAM,SAA4B;CACjC,MAAM;CACN,SAAS;EACR,sBAAsB,SAAS;EAC/B,iBAAiB;EACjB;CACD,iBAAiB;EAChB,QAAQ,SAAS;EACjB,eAAe,EACd,gBAAgB,MAChB;EACD;CACD,eAAe;EACd,+BAA+B;EAC/B,2BAA2B;EAC3B;CACD,OAAO;EAGL,aAAa,CAAC,SAAS,EAAE,YAAY,UAAU,CAAC;EAChD,gBAAgB;EAChB,sBAAsB;GACrB;GACA;GACA,EAAE,4BAA4B,MAAM;GACpC;EAEF,iDAAiD,CAChD,SACA;GACC,gBAAgB;GAChB,6BAA6B;GAC7B,CACD;EACD,8CAA8C,CAC7C,SACA,EAAE,wCAAwC,MAAM,CAChD;EACD,+CAA+C;EAC/C,oDAAoD;EACpD,2CAA2C,CAC1C,SACA,EAAE,QAAQ,sBAAsB,CAChC;EACD,sCAAsC;EACtC,qCAAqC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;EACnE,8BAA8B,CAC7B,SACA;GACC,QAAQ,CAAC,YAAY,cAAc;GACnC,MAAM;GACN,CACD;EACD,8BAA8B,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;EAC5D,8BAA8B,CAC7B,SACA;GACC,cAAc,CACb;IACC,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,EACD;IACC,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,CACD;GACD,QAAQ;IACP;IACA;IACA,CAAC,gBAAgB,gBAAgB;IACjC;IACA;KAAC;KAAe;KAAgB;KAAa;IAC7C,CAAC,iBAAiB,iBAAiB;IACnC;IACA;KAAC;KAAgB;KAAiB;KAAc;IAChD;IACA;IACA;IACA;IACA;GACD,iBAAiB,CAAC,YAAY;GAC9B,iBAAiB;GACjB,iBAAiB;GACjB,MAAM;GACN,CACD;EACD,iCAAiC,CAChC,SACA;GACC,QAAQ;IAAC;IAAmB;IAAW;IAAS;GAChD,MAAM;GACN,CACD;EACD,yCAAyC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;EACvE,oCAAoC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;EAClE,oCAAoC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;EAClE,mCAAmC,CAClC,SACA;GACC,QAAQ;IAAC;IAAmB;IAAW;IAAS;GAChD,MAAM;GACN,CACD;EACD,8BAA8B;GAC7B;GACA;IACC,MAAM;IACN,oBAAoB,EACnB,YAAY,gBACZ;IACD;GACD;IACC,MAAM;IACN,oBAAoB,EACnB,YAAY,oBACZ;IACD;GACD;EACD,kCAAkC,CACjC,SACA;GACC,cAAc;IACb;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;GACD,QAAQ;IACP;IACA;IACA;IACA;IACA;IACA;IACA;GACD,MAAM;GACN,CACD;EACD;CACD;;;;AC3JD,MAAMA,WAA4B;CACjC,MAAM;CACN,SAAS,EACR,eAAe,qBACf;CACD,OAAO,EACN,8BAA8B,CAC7B,SACA;EACC,cAAc;GACb;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;EACD,QAAQ;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,iBAAiB;EACjB,MAAM;EACN,CACD,EACD;CACD;;;;;;;;AC/CD,MAAMC,WAA4B;CACjC,MAAM;CACN,SAAS;EACR,iBAAiB;EACjB,SAAS;EACT,eAAe;EACf;CACD,OAAO;EACN,gCAAgC,CAC/B,SACA;GACC,cAAc;IACb;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;KACC,WAAW;KACX,oBAAoB;KACpB;IACD;GACD,QAAQ;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD,MAAM;GACN,CACD;EACD,kCAAkC,CAAC,SAAS,SAAS;EACrD,uCAAuC,CACtC,SACA;GACC,iBAAiB,CAAC,kBAAkB,uBAAuB;GAC3D,mBAAmB;GACnB,CACD;EACD,wBAAwB;EACxB,2CAA2C;EAC3C,qCAAqC;EACrC,uCAAuC;EAGvC,GAAG,OAAO,YACT,OAAO,KACN,iBAAiB,QAAQ,KAAK,sBAAsB,MACpD,CAAC,KAAK,SAAS,CAAC,MAAM,QAAQ,CAAC,CAChC;EACD;CACD;;;;AC3ED,MAAM,aAAa,KAAK,QAAQ,aAAa;AAG7C,MAAMC,WAFe,GAAG,WAAW,WAAW,GAG3CC,kBAAmB,YAAY,aAAa,GAC5C,EAAE;;;;;;;ACCL,SAAwB,aACvB,GAAG,SACQ;CACX,MAAM,kBACL,QAAQ,SAAS,IAAIC,eAAmB,GAAG,QAAQ,GAAG,EAAE;AAEzD,QAAOA,eAAmB;EACzB,MAAM;EACN,OAAO,CAAC,wBAAwB;EAChC,SAAS;GACRC;GACAC;GACA;IACC,OAAO,CAAC,2BAA2B;IACnC,GAAGC;IACH;GACD,mBAAmB,gBAAgB;GACnC,aAAa,QAAQ;GACrB;EACD,CAAC;;AAGH,SAAS,mBAAmB,SAA6B;CACxD,IAAI;AAEJ,MAAK,MAAM,EAAE,cAAc,QAAQ,YAAY,CAC9C,KAAI,UAAU,SAAS,OAAO,UAAU,UAAU,UAAU;AAC3D,UAAQ,SAAS;AACjB;;AAIF,KAAI,CAAC,MACJ,QAAO;AAGR,QAAO,CACN;EACC,UAAU,EAAE,OAAO;EACnB,GAAGC;EACH,EACD,GAAG,QACH"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@standard-config/eslint",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "TypeScript-first ESLint config designed to complement Oxlint
|
|
3
|
+
"version": "1.3.1",
|
|
4
|
+
"description": "TypeScript-first ESLint config designed to complement Oxlint",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Dom Porada",
|
|
@@ -18,8 +18,9 @@
|
|
|
18
18
|
"flat-config",
|
|
19
19
|
"oxc",
|
|
20
20
|
"oxlint",
|
|
21
|
-
"prettier",
|
|
22
21
|
"react",
|
|
22
|
+
"standard-config",
|
|
23
|
+
"type-aware",
|
|
23
24
|
"typescript"
|
|
24
25
|
],
|
|
25
26
|
"files": [
|
|
@@ -33,42 +34,41 @@
|
|
|
33
34
|
"node": ">=20"
|
|
34
35
|
},
|
|
35
36
|
"dependencies": {
|
|
36
|
-
"@eslint/compat": "^2.0.
|
|
37
|
-
"eslint-
|
|
38
|
-
"eslint-plugin-
|
|
39
|
-
"eslint-plugin-perfectionist": "^5.4.0",
|
|
40
|
-
"eslint-plugin-prettier": "^5.5.5",
|
|
37
|
+
"@eslint/compat": "^2.0.2",
|
|
38
|
+
"eslint-plugin-oxlint": "^1.43.0",
|
|
39
|
+
"eslint-plugin-perfectionist": "^5.5.0",
|
|
41
40
|
"eslint-plugin-react": "^7.37.5",
|
|
42
41
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
43
|
-
"typescript-eslint": "^8.
|
|
42
|
+
"typescript-eslint": "^8.54.0"
|
|
44
43
|
},
|
|
45
44
|
"peerDependencies": {
|
|
46
45
|
"eslint": ">=9",
|
|
47
46
|
"typescript": ">=5"
|
|
48
47
|
},
|
|
49
48
|
"devDependencies": {
|
|
50
|
-
"@standard-config/
|
|
51
|
-
"@standard-config/
|
|
52
|
-
"@
|
|
49
|
+
"@standard-config/oxlint": "1.0.1",
|
|
50
|
+
"@standard-config/prettier": "1.8.1",
|
|
51
|
+
"@standard-config/tsconfig": "2.0.2",
|
|
52
|
+
"@types/node": "22.19.9",
|
|
53
53
|
"@vitest/coverage-v8": "4.0.18",
|
|
54
54
|
"eslint": "9.39.2",
|
|
55
55
|
"husky": "9.1.7",
|
|
56
56
|
"jiti": "2.6.1",
|
|
57
|
-
"oxlint": "1.
|
|
58
|
-
"oxlint-tsgolint": "0.11.
|
|
57
|
+
"oxlint": "1.43.0",
|
|
58
|
+
"oxlint-tsgolint": "0.11.4",
|
|
59
59
|
"prettier": "3.8.1",
|
|
60
60
|
"publint": "0.3.17",
|
|
61
|
-
"tsdown": "0.20.
|
|
61
|
+
"tsdown": "0.20.3",
|
|
62
62
|
"typescript": "5.9.3",
|
|
63
63
|
"vitest": "4.0.18"
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
66
|
"build": "tsdown",
|
|
67
|
-
"fix": "pnpm format && pnpm lint",
|
|
68
|
-
"format": "prettier --
|
|
67
|
+
"fix": "pnpm format && pnpm lint && pnpm format",
|
|
68
|
+
"format": "prettier --ignore-unknown --log-level=warn --write .",
|
|
69
69
|
"format:check": "prettier --check --ignore-unknown .",
|
|
70
|
-
"lint": "oxlint --fix --type-aware --type-check
|
|
71
|
-
"lint:check": "oxlint --
|
|
70
|
+
"lint": "oxlint --fix --report-unused-disable-directives --type-aware --type-check && eslint --fix .",
|
|
71
|
+
"lint:check": "oxlint --deny-warnings --report-unused-disable-directives --type-aware --type-check && eslint .",
|
|
72
72
|
"test": "vitest run",
|
|
73
73
|
"typecheck": "tsc --noEmit"
|
|
74
74
|
}
|