@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 CHANGED
@@ -1,4 +1,4 @@
1
- [![](https://img.shields.io/npm/v/%40standard-config%2Feslint)](https://www.npmjs.com/eslint/@standard-config/eslint)
1
+ [![](https://img.shields.io/npm/v/%40standard-config%2Feslint)](https://www.npmjs.com/package/@standard-config/eslint)
2
2
  [![](https://img.shields.io/github/actions/workflow/status/standard-config/eslint/test.yaml)](https://github.com/standard-config/eslint/actions/workflows/test.yaml)
3
3
  [![](https://img.shields.io/codecov/c/github/standard-config/eslint)](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
- You can also include the config in an existing setup.
29
+ Optionally, you can define React settings to automatically include React-related rules.
30
30
 
31
31
  ```ts
32
- import standardConfig from '@standard-config/eslint';
33
- import { defineConfig } from 'eslint/config';
32
+ import { defineConfig } from '@standard-config/eslint';
34
33
 
35
34
  export default defineConfig({
36
- files: ['**/*.ts'],
37
- extends: [standardConfig],
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 { config as default, defineConfig };
9
+ export { defineConfig };
17
10
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/config/index.ts","../src/define-config/index.ts"],"mappings":";;;;;;;cAUM,MAAA,EAAQ,MAAA,CAAO,MAAA;;;;;AAVgB;iBCOb,YAAA,CAAA,GACpB,OAAA,EAAS,UAAA,QAAkB,cAAA,IAC5B,MAAA"}
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 pluginFormatting from "eslint-plugin-perfectionist";
2
- import tseslint from "typescript-eslint";
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 { defineConfig as defineConfig$1 } from "eslint/config";
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$4 = {
12
+ const config$7 = {
10
13
  name: "Formatting (Config Files)",
11
- plugins: { perfectionist: pluginFormatting },
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$4;
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$3 = {
115
+ const config$5 = {
66
116
  name: "Formatting",
67
- plugins: { perfectionist: pluginFormatting },
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$3;
219
+ var config_formatting_default = config$5;
170
220
 
171
221
  //#endregion
172
- //#region src/config-typescript-settings/index.ts
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$2;
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$1 = {
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$1;
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: [config_default]
253
- }, ...configs);
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 { config_default as default, defineConfig };
351
+ export { defineConfig };
258
352
  //# sourceMappingURL=index.mjs.map
@@ -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.1",
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",