Skip to content

Commit 8dfd19e

Browse files
committed
[code-infra] Migrate to ESLint 10
This PR prepares the codebase for ESLint 10 migration. - Update `eslint` from 9.39.2 to ^10.0.3 - Update `@mui/internal-code-infra` to use temp published package from PR - Add `@eslint/compat` dependency for plugin compatibility - Wrap `eslint-plugin-consistent-default-export-name` with `fixupPluginRules` for ESLint 10 compatibility - Add `packageExtensions` to override peer dependencies for ESLint plugins not yet officially supporting ESLint 10: - eslint-plugin-react - eslint-plugin-import - eslint-plugin-jsx-a11y - eslint-plugin-react-hooks This migration depends on the updated `@mui/internal-code-infra` package from mui-public which contains: - ESLint 10 compatibility fixes using `@eslint/compat` - Updated peer dependencies - Disabled new ESLint 10 rules initially See: mui/mui-public#1150 - Node.js < v20.19 is no longer supported - New config lookup algorithm (starts from file directory) - JSX references are now tracked - `eslint-env` comments are reported as errors - ESLint runs successfully with no errors
1 parent 5cac916 commit 8dfd19e

3 files changed

Lines changed: 201 additions & 240 deletions

File tree

eslint.config.mjs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
EXTENSION_TEST_FILE,
88
EXTENSION_DTS,
99
} from '@mui/internal-code-infra/eslint';
10+
import { fixupPluginRules } from '@eslint/compat';
1011
import { defineConfig } from 'eslint/config';
1112
import eslintPluginConsistentName from 'eslint-plugin-consistent-default-export-name';
1213
import * as path from 'node:path';
@@ -68,6 +69,9 @@ export default defineConfig(
6869
project: ['tsconfig.json'],
6970
},
7071
},
72+
next: {
73+
rootDir: 'docs',
74+
},
7175
},
7276
rules: {
7377
'import/prefer-default-export': 'error',
@@ -205,7 +209,7 @@ export default defineConfig(
205209
'docs/data/**/{css,system,tailwind}/*',
206210
],
207211
plugins: {
208-
'consistent-default-export-name': eslintPluginConsistentName,
212+
'consistent-default-export-name': fixupPluginRules(eslintPluginConsistentName),
209213
},
210214
rules: {
211215
'consistent-default-export-name/default-export-match-filename': ['error'],

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,12 @@
9292
"@babel/core": "7.29.0",
9393
"@babel/node": "7.29.0",
9494
"@babel/plugin-transform-react-constant-elements": "7.27.1",
95+
"@eslint/compat": "^2.0.2",
9596
"@mui-internal/api-docs-builder": "workspace:^",
9697
"@mui-internal/api-docs-builder-core": "workspace:^",
9798
"@mui/internal-babel-plugin-minify-errors": "2.0.8-canary.22",
9899
"@mui/internal-bundle-size-checker": "1.0.9-canary.62",
99-
"@mui/internal-code-infra": "0.0.4-canary.0",
100+
"@mui/internal-code-infra": "0.0.4-canary.5",
100101
"@mui/internal-docs-utils": "workspace:^",
101102
"@mui/internal-netlify-cache": "0.0.3-canary.0",
102103
"@mui/internal-scripts": "workspace:^",
@@ -127,7 +128,7 @@
127128
"danger": "13.0.5",
128129
"dotenv": "17.3.1",
129130
"es-toolkit": "1.44.0",
130-
"eslint": "9.39.3",
131+
"eslint": "10.0.3",
131132
"eslint-import-resolver-webpack": "0.13.10",
132133
"eslint-plugin-consistent-default-export-name": "0.0.15",
133134
"fast-glob": "3.3.3",

0 commit comments

Comments
 (0)