@standard-config/eslint 1.0.1 → 1.1.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 +8 -6
- package/dist/index.d.mts +1 -8
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +138 -44
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[](https://www.npmjs.com/
|
|
1
|
+
[](https://www.npmjs.com/package/@standard-config/eslint)
|
|
2
2
|
[](https://github.com/standard-config/eslint/actions/workflows/test.yaml)
|
|
3
3
|
[](https://codecov.io/github/standard-config/eslint)
|
|
4
4
|
|
|
@@ -26,15 +26,17 @@ import { defineConfig } from '@standard-config/eslint';
|
|
|
26
26
|
export default defineConfig();
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
Optionally, you can define React settings to automatically include React-related rules.
|
|
30
30
|
|
|
31
31
|
```ts
|
|
32
|
-
import
|
|
33
|
-
import { defineConfig } from 'eslint/config';
|
|
32
|
+
import { defineConfig } from '@standard-config/eslint';
|
|
34
33
|
|
|
35
34
|
export default defineConfig({
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
settings: {
|
|
36
|
+
react: {
|
|
37
|
+
version: 'detect',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
38
40
|
});
|
|
39
41
|
```
|
|
40
42
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import { Config, defineConfig as defineConfig$1 } from "eslint/config";
|
|
2
|
-
import { Linter } from "eslint";
|
|
3
2
|
|
|
4
|
-
//#region src/config/index.d.ts
|
|
5
|
-
/**
|
|
6
|
-
* Standard Config for use in an existing config.
|
|
7
|
-
*/
|
|
8
|
-
declare const config: Linter.Config[];
|
|
9
|
-
//#endregion
|
|
10
3
|
//#region src/define-config/index.d.ts
|
|
11
4
|
/**
|
|
12
5
|
* Combine Standard Config with optional additional config.
|
|
13
6
|
*/
|
|
14
7
|
declare function defineConfig(...configs: Parameters<typeof defineConfig$1>): Config[];
|
|
15
8
|
//#endregion
|
|
16
|
-
export {
|
|
9
|
+
export { defineConfig };
|
|
17
10
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/define-config/index.ts"],"mappings":";;;;AACmE;;iBAa3C,YAAA,CAAA,GACpB,OAAA,EAAS,UAAA,QAAkB,cAAA,IAC5B,MAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { defineConfig as defineConfig$1 } from "eslint/config";
|
|
2
|
+
import pluginPerfectionist from "eslint-plugin-perfectionist";
|
|
3
3
|
import { includeIgnoreFile } from "@eslint/compat";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import
|
|
6
|
+
import pluginOxlint from "eslint-plugin-oxlint";
|
|
7
|
+
import pluginReact from "eslint-plugin-react";
|
|
8
|
+
import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
9
|
+
import tseslint from "typescript-eslint";
|
|
7
10
|
|
|
8
11
|
//#region src/config-formatting-config-files/index.ts
|
|
9
|
-
const config$
|
|
12
|
+
const config$7 = {
|
|
10
13
|
name: "Formatting (Config Files)",
|
|
11
|
-
plugins: { perfectionist:
|
|
14
|
+
plugins: { perfectionist: pluginPerfectionist },
|
|
12
15
|
rules: { "perfectionist/sort-objects": ["error", {
|
|
13
16
|
customGroups: [
|
|
14
17
|
{
|
|
@@ -54,7 +57,54 @@ const config$4 = {
|
|
|
54
57
|
type: "natural"
|
|
55
58
|
}] }
|
|
56
59
|
};
|
|
57
|
-
var config_formatting_config_files_default = config$
|
|
60
|
+
var config_formatting_config_files_default = config$7;
|
|
61
|
+
|
|
62
|
+
//#endregion
|
|
63
|
+
//#region src/config-formatting-react/index.ts
|
|
64
|
+
const config$6 = {
|
|
65
|
+
name: "Formatting (React)",
|
|
66
|
+
plugins: { perfectionist: pluginPerfectionist },
|
|
67
|
+
rules: { "perfectionist/sort-jsx-props": ["error", {
|
|
68
|
+
customGroups: [
|
|
69
|
+
{
|
|
70
|
+
elementNamePattern: "^as$",
|
|
71
|
+
groupName: "as"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
elementNamePattern: "^on.+",
|
|
75
|
+
groupName: "callback"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
elementNamePattern: "^children$",
|
|
79
|
+
groupName: "children"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
elementNamePattern: "^key$",
|
|
83
|
+
groupName: "key"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
elementNamePattern: "^ref$",
|
|
87
|
+
groupName: "ref"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
elementNamePattern: "^dangerously.+",
|
|
91
|
+
groupName: "unsafe"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
groups: [
|
|
95
|
+
"key",
|
|
96
|
+
"ref",
|
|
97
|
+
"as",
|
|
98
|
+
"unknown",
|
|
99
|
+
"shorthand-prop",
|
|
100
|
+
"callback",
|
|
101
|
+
"children",
|
|
102
|
+
"unsafe"
|
|
103
|
+
],
|
|
104
|
+
type: "unsorted"
|
|
105
|
+
}] }
|
|
106
|
+
};
|
|
107
|
+
var config_formatting_react_default = config$6;
|
|
58
108
|
|
|
59
109
|
//#endregion
|
|
60
110
|
//#region src/config-formatting/index.ts
|
|
@@ -62,9 +112,9 @@ var config_formatting_config_files_default = config$4;
|
|
|
62
112
|
* This config is intentionally limited to formatting options
|
|
63
113
|
* not supported by Prettier.
|
|
64
114
|
*/
|
|
65
|
-
const config$
|
|
115
|
+
const config$5 = {
|
|
66
116
|
name: "Formatting",
|
|
67
|
-
plugins: { perfectionist:
|
|
117
|
+
plugins: { perfectionist: pluginPerfectionist },
|
|
68
118
|
rules: {
|
|
69
119
|
"perfectionist/sort-array-includes": ["error", { type: "natural" }],
|
|
70
120
|
"perfectionist/sort-classes": ["error", {
|
|
@@ -166,11 +216,52 @@ const config$3 = {
|
|
|
166
216
|
}]
|
|
167
217
|
}
|
|
168
218
|
};
|
|
169
|
-
var config_formatting_default = config$
|
|
219
|
+
var config_formatting_default = config$5;
|
|
170
220
|
|
|
171
221
|
//#endregion
|
|
172
|
-
//#region src/config-
|
|
222
|
+
//#region src/config-ignores/index.ts
|
|
223
|
+
const configPath$1 = path.resolve(".gitignore");
|
|
224
|
+
const config$4 = [fs.existsSync(configPath$1) ? includeIgnoreFile(configPath$1, ".gitignore") : {}, {
|
|
225
|
+
name: "Ignored Paths",
|
|
226
|
+
ignores: ["**/fixtures/**"]
|
|
227
|
+
}];
|
|
228
|
+
var config_ignores_default = config$4;
|
|
229
|
+
|
|
230
|
+
//#endregion
|
|
231
|
+
//#region src/config-oxlint/index.ts
|
|
232
|
+
const configPath = path.resolve(".oxlintrc.json");
|
|
233
|
+
const config$3 = fs.existsSync(configPath) ? pluginOxlint.buildFromOxlintConfigFile(configPath, { typeAware: true }) : [];
|
|
234
|
+
var config_oxlint_default = config$3;
|
|
235
|
+
|
|
236
|
+
//#endregion
|
|
237
|
+
//#region src/config-react/index.ts
|
|
238
|
+
/**
|
|
239
|
+
* This config is intentionally limited to rules not supported by Oxlint.
|
|
240
|
+
*/
|
|
173
241
|
const config$2 = {
|
|
242
|
+
name: "React",
|
|
243
|
+
plugins: {
|
|
244
|
+
"react": pluginReact,
|
|
245
|
+
"react-hooks": pluginReactHooks
|
|
246
|
+
},
|
|
247
|
+
rules: {
|
|
248
|
+
"react/destructuring-assignment": ["error", "always"],
|
|
249
|
+
"react/function-component-definition": ["error", {
|
|
250
|
+
namedComponents: ["arrow-function", "function-declaration"],
|
|
251
|
+
unnamedComponents: "arrow-function"
|
|
252
|
+
}],
|
|
253
|
+
"react/hook-use-state": "error",
|
|
254
|
+
"react/jsx-no-constructed-context-values": "error",
|
|
255
|
+
"react/no-adjacent-inline-elements": "error",
|
|
256
|
+
"react/no-unstable-nested-components": "error",
|
|
257
|
+
...Object.fromEntries(Object.keys(pluginReactHooks.configs.flat["recommended-latest"].rules).map((rule) => [rule, "error"]))
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
var config_react_default = config$2;
|
|
261
|
+
|
|
262
|
+
//#endregion
|
|
263
|
+
//#region src/config-typescript-settings/index.ts
|
|
264
|
+
const config$1 = {
|
|
174
265
|
name: "TypeScript (Linter Settings)",
|
|
175
266
|
languageOptions: {
|
|
176
267
|
parser: tseslint.parser,
|
|
@@ -181,14 +272,14 @@ const config$2 = {
|
|
|
181
272
|
reportUnusedInlineConfigs: "error"
|
|
182
273
|
}
|
|
183
274
|
};
|
|
184
|
-
var config_typescript_settings_default = config$
|
|
275
|
+
var config_typescript_settings_default = config$1;
|
|
185
276
|
|
|
186
277
|
//#endregion
|
|
187
278
|
//#region src/config-typescript/index.ts
|
|
188
279
|
/**
|
|
189
280
|
* This config is intentionally limited to rules not supported by Oxlint.
|
|
190
281
|
*/
|
|
191
|
-
const config
|
|
282
|
+
const config = {
|
|
192
283
|
name: "TypeScript",
|
|
193
284
|
plugins: { "@typescript-eslint": tseslint.plugin },
|
|
194
285
|
rules: {
|
|
@@ -210,35 +301,7 @@ const config$1 = {
|
|
|
210
301
|
"@typescript-eslint/prefer-readonly": "error"
|
|
211
302
|
}
|
|
212
303
|
};
|
|
213
|
-
var config_typescript_default = config
|
|
214
|
-
|
|
215
|
-
//#endregion
|
|
216
|
-
//#region src/include-ignore-file/index.ts
|
|
217
|
-
const ignoreFilePath = path.resolve(".gitignore");
|
|
218
|
-
const ignoreFilePathExists = fs.existsSync(ignoreFilePath);
|
|
219
|
-
function includeIgnoreFile$1(configs) {
|
|
220
|
-
return ignoreFilePathExists ? [includeIgnoreFile(ignoreFilePath, ".gitignore"), ...configs] : configs;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
//#endregion
|
|
224
|
-
//#region src/config/index.ts
|
|
225
|
-
/**
|
|
226
|
-
* Standard Config for use in an existing config.
|
|
227
|
-
*/
|
|
228
|
-
const config = includeIgnoreFile$1([
|
|
229
|
-
{
|
|
230
|
-
name: "Ignored Paths",
|
|
231
|
-
ignores: ["**/fixtures/**"]
|
|
232
|
-
},
|
|
233
|
-
config_typescript_settings_default,
|
|
234
|
-
config_typescript_default,
|
|
235
|
-
config_formatting_default,
|
|
236
|
-
{
|
|
237
|
-
files: ["**/*.config.*"],
|
|
238
|
-
...config_formatting_config_files_default
|
|
239
|
-
}
|
|
240
|
-
]);
|
|
241
|
-
var config_default = config;
|
|
304
|
+
var config_typescript_default = config;
|
|
242
305
|
|
|
243
306
|
//#endregion
|
|
244
307
|
//#region src/define-config/index.ts
|
|
@@ -246,13 +309,44 @@ var config_default = config;
|
|
|
246
309
|
* Combine Standard Config with optional additional config.
|
|
247
310
|
*/
|
|
248
311
|
function defineConfig(...configs) {
|
|
312
|
+
const configExtension = configs.length > 0 ? defineConfig$1(...configs) : [];
|
|
249
313
|
return defineConfig$1({
|
|
250
314
|
name: "Standard Config",
|
|
251
315
|
files: ["**/*.{ts,tsx,cts,mts}"],
|
|
252
|
-
extends: [
|
|
253
|
-
|
|
316
|
+
extends: [
|
|
317
|
+
config_ignores_default,
|
|
318
|
+
config_typescript_settings_default,
|
|
319
|
+
config_typescript_default,
|
|
320
|
+
config_formatting_default,
|
|
321
|
+
{
|
|
322
|
+
files: ["**/*.config.*"],
|
|
323
|
+
...config_formatting_config_files_default
|
|
324
|
+
},
|
|
325
|
+
includeReactConfig(configExtension),
|
|
326
|
+
config_oxlint_default
|
|
327
|
+
]
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
function includeReactConfig(configs) {
|
|
331
|
+
let react;
|
|
332
|
+
for (const { settings } of configs.toReversed()) if (settings?.react && typeof settings?.react === "object") {
|
|
333
|
+
react = settings.react;
|
|
334
|
+
break;
|
|
335
|
+
}
|
|
336
|
+
if (!react) return configs;
|
|
337
|
+
return [
|
|
338
|
+
{
|
|
339
|
+
settings: { react },
|
|
340
|
+
...config_react_default
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
files: ["**/*.tsx"],
|
|
344
|
+
...config_formatting_react_default
|
|
345
|
+
},
|
|
346
|
+
...configs
|
|
347
|
+
];
|
|
254
348
|
}
|
|
255
349
|
|
|
256
350
|
//#endregion
|
|
257
|
-
export {
|
|
351
|
+
export { defineConfig };
|
|
258
352
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["config","config","config","config","includeIgnoreFile","_includeIgnoreFile","includeIgnoreFile","configTypeScriptSettings","configTypeScript","configFormatting","configFormattingConfigFiles","_defineConfig","config"],"sources":["../src/config-formatting-config-files/index.ts","../src/config-formatting/index.ts","../src/config-typescript-settings/index.ts","../src/config-typescript/index.ts","../src/include-ignore-file/index.ts","../src/config/index.ts","../src/define-config/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport pluginFormatting from 'eslint-plugin-perfectionist';\n\nconst config: Linter.Config = {\n\tname: 'Formatting (Config Files)',\n\tplugins: {\n\t\tperfectionist: pluginFormatting,\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\telementNamePattern: '^extends$',\n\t\t\t\t\t\tgroupName: 'extends',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^files$',\n\t\t\t\t\t\tgroupName: 'files',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^(ignores|ignorePatterns)$',\n\t\t\t\t\t\tgroupName: 'ignores',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^name$',\n\t\t\t\t\t\tgroupName: 'name',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^overrides$',\n\t\t\t\t\t\tgroupName: 'overrides',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^plugins$',\n\t\t\t\t\t\tgroupName: 'plugins',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^rules$',\n\t\t\t\t\t\tgroupName: '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 pluginFormatting 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: pluginFormatting,\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\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tgroupName: 'mock-side-effect',\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\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tgroupName: 'mock',\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\telementNamePattern: '^false$',\n\t\t\t\t\t\tgroupName: 'false',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^never$',\n\t\t\t\t\t\tgroupName: 'never',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^react.+',\n\t\t\t\t\t\tgroupName: '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 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 { Linter } from 'eslint';\nimport { includeIgnoreFile as _includeIgnoreFile } from '@eslint/compat';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst ignoreFilePath = path.resolve('.gitignore');\nconst ignoreFilePathExists = fs.existsSync(ignoreFilePath);\n\nexport default function includeIgnoreFile(\n\tconfigs: Linter.Config[]\n): Linter.Config[] {\n\treturn ignoreFilePathExists\n\t\t? [_includeIgnoreFile(ignoreFilePath, '.gitignore'), ...configs]\n\t\t: configs;\n}\n","import type { Linter } from 'eslint';\nimport configFormattingConfigFiles from '../config-formatting-config-files/index.ts';\nimport configFormatting from '../config-formatting/index.ts';\nimport configTypeScriptSettings from '../config-typescript-settings/index.ts';\nimport configTypeScript from '../config-typescript/index.ts';\nimport includeIgnoreFile from '../include-ignore-file/index.ts';\n\n/**\n * Standard Config for use in an existing config.\n */\nconst config: Linter.Config[] = includeIgnoreFile([\n\t{\n\t\tname: 'Ignored Paths',\n\t\tignores: ['**/fixtures/**'],\n\t},\n\tconfigTypeScriptSettings,\n\tconfigTypeScript,\n\tconfigFormatting,\n\t{\n\t\tfiles: ['**/*.config.*'],\n\t\t...configFormattingConfigFiles,\n\t},\n]);\n\nexport default config;\n","import type { Config } from 'eslint/config';\nimport { defineConfig as _defineConfig } from 'eslint/config';\nimport config from '../config/index.ts';\n\n/**\n * Combine Standard Config with optional additional config.\n */\nexport default function defineConfig(\n\t...configs: Parameters<typeof _defineConfig>\n): Config[] {\n\treturn _defineConfig(\n\t\t{\n\t\t\tname: 'Standard Config',\n\t\t\tfiles: ['**/*.{ts,tsx,cts,mts}'],\n\t\t\textends: [config],\n\t\t},\n\t\t...configs\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["config","config","config","configPath","config","_includeIgnoreFile","config","config","config","eslintDefineConfig","configIgnores","configTypeScriptSettings","configTypeScript","configFormatting","configFormattingConfigFiles","configOxlint","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-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\telementNamePattern: '^extends$',\n\t\t\t\t\t\tgroupName: 'extends',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^files$',\n\t\t\t\t\t\tgroupName: 'files',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^(ignores|ignorePatterns)$',\n\t\t\t\t\t\tgroupName: 'ignores',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^name$',\n\t\t\t\t\t\tgroupName: 'name',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^overrides$',\n\t\t\t\t\t\tgroupName: 'overrides',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^plugins$',\n\t\t\t\t\t\tgroupName: 'plugins',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^rules$',\n\t\t\t\t\t\tgroupName: '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\telementNamePattern: '^as$',\n\t\t\t\t\t\tgroupName: 'as',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^on.+',\n\t\t\t\t\t\tgroupName: 'callback',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^children$',\n\t\t\t\t\t\tgroupName: 'children',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^key$',\n\t\t\t\t\t\tgroupName: 'key',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^ref$',\n\t\t\t\t\t\tgroupName: 'ref',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^dangerously.+',\n\t\t\t\t\t\tgroupName: 'unsafe',\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\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tgroupName: 'mock-side-effect',\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\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\t\tgroupName: 'mock',\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\telementNamePattern: '^false$',\n\t\t\t\t\t\tgroupName: 'false',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^never$',\n\t\t\t\t\t\tgroupName: 'never',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\telementNamePattern: '^react.+',\n\t\t\t\t\t\tgroupName: '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 { 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 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],\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,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;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,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;GACD;IACC,oBAAoB;IACpB,WAAW;IACX;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,oBAAoB;IACpB,WAAW;IACX,UAAU;IACV,EACD;IACC,oBAAoB;IACpB,WAAW;IACX,UAAU;IACV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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@standard-config/eslint",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "TypeScript-first ESLint config designed to complement Oxlint and Prettier",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"oxc",
|
|
20
20
|
"oxlint",
|
|
21
21
|
"prettier",
|
|
22
|
+
"react",
|
|
22
23
|
"typescript"
|
|
23
24
|
],
|
|
24
25
|
"files": [
|
|
@@ -34,11 +35,15 @@
|
|
|
34
35
|
"packageManager": "pnpm@10.28.1",
|
|
35
36
|
"dependencies": {
|
|
36
37
|
"@eslint/compat": "^2.0.1",
|
|
38
|
+
"eslint-plugin-oxlint": "^1.41.0",
|
|
37
39
|
"eslint-plugin-perfectionist": "^5.4.0",
|
|
40
|
+
"eslint-plugin-react": "^7.37.5",
|
|
41
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
38
42
|
"typescript-eslint": "^8.53.1"
|
|
39
43
|
},
|
|
40
44
|
"peerDependencies": {
|
|
41
|
-
"eslint": ">=9"
|
|
45
|
+
"eslint": ">=9",
|
|
46
|
+
"typescript": ">=5"
|
|
42
47
|
},
|
|
43
48
|
"devDependencies": {
|
|
44
49
|
"@standard-config/prettier": "1.5.0",
|