Skip to content

Commit c98baa7

Browse files
committed
migrate eslint config to new format required since 9.0.0
Signed-off-by: CrazyMax <[email protected]>
1 parent ad1f8b1 commit c98baa7

File tree

5 files changed

+89
-29
lines changed

5 files changed

+89
-29
lines changed

.eslintignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

.eslintrc.json

Lines changed: 0 additions & 24 deletions
This file was deleted.

eslint.config.js

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/* eslint-disable @typescript-eslint/no-require-imports */
2+
const {defineConfig, globalIgnores} = require('eslint/config');
3+
const {fixupConfigRules, fixupPluginRules} = require('@eslint/compat');
4+
const typescriptEslint = require('@typescript-eslint/eslint-plugin');
5+
const jestPlugin = require('eslint-plugin-jest');
6+
const prettier = require('eslint-plugin-prettier');
7+
const globals = require('globals');
8+
const tsParser = require('@typescript-eslint/parser');
9+
const js = require('@eslint/js');
10+
const {FlatCompat} = require('@eslint/eslintrc');
11+
12+
// __dirname and __filename exist natively in CommonJS
13+
const compat = new FlatCompat({
14+
baseDirectory: __dirname,
15+
recommendedConfig: js.configs.recommended,
16+
allConfig: js.configs.all
17+
});
18+
19+
module.exports = defineConfig([
20+
globalIgnores(['dist/**/*', 'coverage/**/*', 'node_modules/**/*']),
21+
{
22+
// prettier-ignore
23+
extends: fixupConfigRules(
24+
compat.extends(
25+
'eslint:recommended',
26+
'plugin:@typescript-eslint/eslint-recommended',
27+
'plugin:@typescript-eslint/recommended',
28+
'plugin:jest/recommended',
29+
'plugin:prettier/recommended'
30+
)
31+
),
32+
33+
plugins: {
34+
'@typescript-eslint': fixupPluginRules(typescriptEslint),
35+
jest: fixupPluginRules(jestPlugin),
36+
prettier: fixupPluginRules(prettier)
37+
},
38+
39+
languageOptions: {
40+
globals: {
41+
...globals.node,
42+
...globals.jest
43+
},
44+
parser: tsParser,
45+
ecmaVersion: 'latest',
46+
sourceType: 'module'
47+
},
48+
49+
rules: {
50+
'@typescript-eslint/no-require-imports': [
51+
'error',
52+
{
53+
allowAsImport: true
54+
}
55+
]
56+
}
57+
}
58+
]);

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
"semver": "^7.7.3"
3939
},
4040
"devDependencies": {
41+
"@eslint/compat": "^2.0.0",
42+
"@eslint/eslintrc": "^3.3.3",
43+
"@eslint/js": "^9.39.2",
4144
"@types/node": "^20.19.27",
4245
"@typescript-eslint/eslint-plugin": "^8.50.0",
4346
"@typescript-eslint/parser": "^8.50.0",

yarn.lock

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,6 +1238,20 @@ __metadata:
12381238
languageName: node
12391239
linkType: hard
12401240

1241+
"@eslint/compat@npm:^2.0.0":
1242+
version: 2.0.0
1243+
resolution: "@eslint/compat@npm:2.0.0"
1244+
dependencies:
1245+
"@eslint/core": "npm:^1.0.0"
1246+
peerDependencies:
1247+
eslint: ^8.40 || 9
1248+
peerDependenciesMeta:
1249+
eslint:
1250+
optional: true
1251+
checksum: 10/b1f63053ac643d47ce44d354a65e095e2b59f6b6aee4d6ca08cfa3b0800fc784bbd6895494ba726479faf9591e8e2887dc13c7a776f0d9627f0fdbf7faa34fdb
1252+
languageName: node
1253+
linkType: hard
1254+
12411255
"@eslint/config-array@npm:^0.21.1":
12421256
version: 0.21.1
12431257
resolution: "@eslint/config-array@npm:0.21.1"
@@ -1267,7 +1281,16 @@ __metadata:
12671281
languageName: node
12681282
linkType: hard
12691283

1270-
"@eslint/eslintrc@npm:^3.3.1":
1284+
"@eslint/core@npm:^1.0.0":
1285+
version: 1.0.0
1286+
resolution: "@eslint/core@npm:1.0.0"
1287+
dependencies:
1288+
"@types/json-schema": "npm:^7.0.15"
1289+
checksum: 10/0e2fc001ec3a12a9d6cd5de8eaf6c9eb1deec892777fed04e59eae0f3073c69988451eda32623524db76adaa7075747a8de5aa39b91b9084c711db452194eae9
1290+
languageName: node
1291+
linkType: hard
1292+
1293+
"@eslint/eslintrc@npm:^3.3.1, @eslint/eslintrc@npm:^3.3.3":
12711294
version: 3.3.3
12721295
resolution: "@eslint/eslintrc@npm:3.3.3"
12731296
dependencies:
@@ -1284,7 +1307,7 @@ __metadata:
12841307
languageName: node
12851308
linkType: hard
12861309

1287-
"@eslint/js@npm:9.39.2":
1310+
"@eslint/js@npm:9.39.2, @eslint/js@npm:^9.39.2":
12881311
version: 9.39.2
12891312
resolution: "@eslint/js@npm:9.39.2"
12901313
checksum: 10/6b7f676746f3111b5d1b23715319212ab9297868a0fa9980d483c3da8965d5841673aada2d5653e85a3f7156edee0893a7ae7035211b4efdcb2848154bb947f2
@@ -3606,6 +3629,9 @@ __metadata:
36063629
"@actions/core": "npm:^1.11.1"
36073630
"@actions/github": "npm:^6.0.1"
36083631
"@docker/actions-toolkit": "npm:^0.68.0"
3632+
"@eslint/compat": "npm:^2.0.0"
3633+
"@eslint/eslintrc": "npm:^3.3.3"
3634+
"@eslint/js": "npm:^9.39.2"
36093635
"@renovate/pep440": "npm:^1.0.0"
36103636
"@types/node": "npm:^20.19.27"
36113637
"@typescript-eslint/eslint-plugin": "npm:^8.50.0"

0 commit comments

Comments
 (0)