1- // Automatically generated by running npx @eslint /migrate-config .eslintrc.json
2-
3- import path from "node:path" ;
4- import { fileURLToPath } from "node:url" ;
5-
6- import { fixupConfigRules , fixupPluginRules } from "@eslint/compat" ;
7- import { FlatCompat } from "@eslint/eslintrc" ;
1+ import { fixupPluginRules } from "@eslint/compat" ;
82import js from "@eslint/js" ;
9- import typescriptEslint from "@typescript-eslint/eslint-plugin" ;
10- import tsParser from "@typescript-eslint/parser" ;
11- import filenames from "eslint-plugin-filenames" ;
123import github from "eslint-plugin-github" ;
13- import _import from "eslint-plugin-import" ;
4+ import { importX , createNodeResolver } from "eslint-plugin-import-x" ;
5+ import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript" ;
146import noAsyncForeach from "eslint-plugin-no-async-foreach" ;
157import jsdoc from "eslint-plugin-jsdoc" ;
8+ import tseslint from "typescript-eslint" ;
169import globals from "globals" ;
1710
18- const __filename = fileURLToPath ( import . meta. url ) ;
19- const __dirname = path . dirname ( __filename ) ;
20- const compat = new FlatCompat ( {
21- baseDirectory : __dirname ,
22- recommendedConfig : js . configs . recommended ,
23- allConfig : js . configs . all ,
24- } ) ;
11+ const githubFlatConfigs = github . getFlatConfigs ( ) ;
2512
2613export default [
2714 {
@@ -36,29 +23,29 @@ export default [
3623 ".github/**/*" ,
3724 ] ,
3825 } ,
39- ...fixupConfigRules (
40- compat . extends (
41- "eslint:recommended" ,
42- "plugin:@typescript-eslint/recommended" ,
43- "plugin:@typescript-eslint/recommended-requiring-type-checking" ,
44- "plugin:github/recommended" ,
45- "plugin:github/typescript" ,
46- "plugin:import/typescript" ,
47- ) ,
48- ) ,
26+ // eslint recommended config
27+ js . configs . recommended ,
28+ // Type-checked rules from typescript-eslint
29+ ...tseslint . configs . recommendedTypeChecked ,
30+ ...tseslint . configs . strict ,
31+ // eslint-plugin-github recommended config
32+ githubFlatConfigs . recommended ,
33+ // eslint-plugin-github typescript config
34+ ...githubFlatConfigs . typescript ,
35+ // import-x TypeScript settings
36+ // This is needed for import-x rules to properly parse TypeScript files.
37+ {
38+ settings : importX . flatConfigs . typescript . settings ,
39+ } ,
4940 {
5041 plugins : {
51- "@typescript-eslint" : fixupPluginRules ( typescriptEslint ) ,
52- filenames : fixupPluginRules ( filenames ) ,
53- github : fixupPluginRules ( github ) ,
54- import : fixupPluginRules ( _import ) ,
55- "no-async-foreach" : noAsyncForeach ,
42+ "import-x" : importX ,
43+ "no-async-foreach" : fixupPluginRules ( noAsyncForeach ) ,
5644 "jsdoc" : jsdoc ,
5745 } ,
5846
5947 languageOptions : {
60- parser : tsParser ,
61- ecmaVersion : 5 ,
48+ ecmaVersion : "latest" ,
6249 sourceType : "module" ,
6350
6451 globals : {
@@ -79,10 +66,16 @@ export default [
7966 typescript : { } ,
8067 } ,
8168 "import/ignore" : [ "sinon" , "uuid" , "@octokit/plugin-retry" , "del" , "get-folder-size" ] ,
69+ "import-x/resolver-next" : [
70+ createTypeScriptImportResolver ( ) ,
71+ createNodeResolver ( {
72+ extensions : [ ".ts" , ".js" , ".json" ] ,
73+ } ) ,
74+ ] ,
8275 } ,
8376
8477 rules : {
85- "filenames/ match-regex" : [ "error" , "^[a-z0-9-]+(\\.test)?$" ] ,
78+ "github/filenames- match-regex" : [ "error" , "^[a-z0-9-]+(\\.test)?$" ] ,
8679 "i18n-text/no-en" : "off" ,
8780
8881 "import/extensions" : [
@@ -94,7 +87,10 @@ export default [
9487
9588 "import/no-amd" : "error" ,
9689 "import/no-commonjs" : "error" ,
97- "import/no-cycle" : "error" ,
90+ // import/no-cycle does not seem to work with ESLint 9.
91+ // Use import-x/no-cycle from eslint-plugin-import-x instead.
92+ "import/no-cycle" : "off" ,
93+ "import-x/no-cycle" : "error" ,
9894 "import/no-dynamic-require" : "error" ,
9995
10096 "import/no-extraneous-dependencies" : [
@@ -132,6 +128,8 @@ export default [
132128 "no-async-foreach/no-async-foreach" : "error" ,
133129 "no-sequences" : "error" ,
134130 "no-shadow" : "off" ,
131+ // This is overly restrictive with unsetting `EnvVar`s
132+ "@typescript-eslint/no-dynamic-delete" : "off" ,
135133 "@typescript-eslint/no-shadow" : "error" ,
136134 "@typescript-eslint/prefer-optional-chain" : "error" ,
137135 "one-var" : [ "error" , "never" ] ,
0 commit comments