lint: add eslint checks for frontend compatibility

This commit is contained in:
Tunglies
2026-06-09 14:12:13 +08:00
parent ee7f66f49c
commit 6a0cc21244
3 changed files with 31 additions and 0 deletions
+3
View File
@@ -2,6 +2,7 @@ import eslintJS from '@eslint/js'
import eslintReact from '@eslint-react/eslint-plugin'
import { defineConfig } from 'eslint/config'
import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript'
import pluginESx from 'eslint-plugin-es-x'
import pluginImportX from 'eslint-plugin-import-x'
import pluginReactCompiler from 'eslint-plugin-react-compiler'
import pluginReactHooks from 'eslint-plugin-react-hooks'
@@ -12,6 +13,7 @@ import globals from 'globals'
import tseslint from 'typescript-eslint'
export default defineConfig([
pluginESx.configs['flat/restrict-to-es2022'],
{
files: ['**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
@@ -20,6 +22,7 @@ export default defineConfig([
// @ts-expect-error -- https://github.com/typescript-eslint/typescript-eslint/issues/11543
'react-hooks': pluginReactHooks,
'react-compiler': pluginReactCompiler,
'es-x': pluginESx,
'import-x': pluginImportX,
'react-refresh': pluginReactRefresh,
'unused-imports': pluginUnusedImports,
+1
View File
@@ -99,6 +99,7 @@
"cross-env": "^10.1.0",
"eslint": "^10.4.0",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-es-x": "^9.6.0",
"eslint-plugin-import-x": "^4.16.2",
"eslint-plugin-react-compiler": "19.1.0-rc.2",
"eslint-plugin-react-hooks": "^7.1.1",
+27
View File
@@ -198,6 +198,9 @@ importers:
eslint-import-resolver-typescript:
specifier: ^4.4.4
version: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0)))(eslint@10.4.0(jiti@2.7.0))
eslint-plugin-es-x:
specifier: ^9.6.0
version: 9.6.0(eslint@10.4.0(jiti@2.7.0))
eslint-plugin-import-x:
specifier: ^4.16.2
version: 4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0))
@@ -2233,6 +2236,12 @@ packages:
eslint-plugin-import-x:
optional: true
eslint-plugin-es-x@9.6.0:
resolution: {integrity: sha512-F74Ceu0n+EuANGyZyt9jFsawVC88rhyXXqVkKr/+9S54n5omZvUqe5yTCuAUhBk37yRCOKS45Os9IuxJpiVYGw==}
engines: {node: ^20.19.0 || >=22.12.0}
peerDependencies:
eslint: '>=9.29.0'
eslint-plugin-import-x@4.16.2:
resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2324,6 +2333,12 @@ packages:
resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
eslint-type-tracer@0.5.2:
resolution: {integrity: sha512-YiJmgk6OD1suPB4UC3M/PB+oxahf145jQQ5gFXFk9F9Y7puWwnqGYC2BtTB+FoHqdOohImeTt0rNk0lhhECNaQ==}
engines: {node: ^18 || >=20}
peerDependencies:
eslint: '>=8'
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -5684,6 +5699,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-plugin-es-x@9.6.0(eslint@10.4.0(jiti@2.7.0)):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.7.0))
'@eslint-community/regexpp': 4.12.2
eslint: 10.4.0(jiti@2.7.0)
eslint-type-tracer: 0.5.2(eslint@10.4.0(jiti@2.7.0))
eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0)):
dependencies:
'@package-json/types': 0.0.12
@@ -5846,6 +5868,11 @@ snapshots:
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-type-tracer@0.5.2(eslint@10.4.0(jiti@2.7.0)):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.7.0))
eslint: 10.4.0(jiti@2.7.0)
eslint-visitor-keys@3.4.3: {}
eslint-visitor-keys@5.0.1: {}