From df92e5d95d4b0d6bb8b5616ee460aa5b04f9e452 Mon Sep 17 00:00:00 2001 From: AetherWing Date: Thu, 21 May 2026 04:10:46 +0800 Subject: [PATCH] fix(ci): resolve pnpm lint issues (#7063) * fix(eslint): remove deprecated prefer-destructuring-assignment rule * refactor(eslint): port destructuring rule to sukka --- eslint.config.ts | 4 +++- package.json | 1 + pnpm-lock.yaml | 24 ++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/eslint.config.ts b/eslint.config.ts index c7a6cc6d0..4ac46c5fa 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -6,6 +6,7 @@ import pluginImportX from 'eslint-plugin-import-x' import pluginReactCompiler from 'eslint-plugin-react-compiler' import pluginReactHooks from 'eslint-plugin-react-hooks' import pluginReactRefresh from 'eslint-plugin-react-refresh' +import PluginSukka from 'eslint-plugin-sukka' import pluginUnusedImports from 'eslint-plugin-unused-imports' import globals from 'globals' import tseslint from 'typescript-eslint' @@ -22,6 +23,7 @@ export default defineConfig([ 'import-x': pluginImportX, 'react-refresh': pluginReactRefresh, 'unused-imports': pluginUnusedImports, + sukka: PluginSukka, }, extends: [ @@ -88,7 +90,7 @@ export default defineConfig([ '@eslint-react/no-unused-class-component-members': 'error', '@eslint-react/no-unused-state': 'error', '@eslint-react/jsx-no-useless-fragment': 'warn', - '@eslint-react/prefer-destructuring-assignment': 'warn', + 'sukka/react-prefer-destructuring-assignment': 'warn', // TypeScript '@typescript-eslint/no-explicit-any': 'off', diff --git a/package.json b/package.json index 1eb412f3e..c8d17811f 100644 --- a/package.json +++ b/package.json @@ -104,6 +104,7 @@ "eslint-plugin-react-compiler": "19.1.0-rc.2", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", + "eslint-plugin-sukka": "^9.5.0", "eslint-plugin-unused-imports": "^4.4.1", "glob": "^13.0.6", "globals": "^17.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab1f2b77c..19329f696 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -213,6 +213,9 @@ importers: eslint-plugin-react-refresh: specifier: ^0.5.2 version: 0.5.2(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-sukka: + specifier: ^9.5.0 + version: 9.5.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint-plugin-unused-imports: specifier: ^4.4.1 version: 4.4.1(@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)) @@ -2340,6 +2343,12 @@ packages: eslint: ^10.3.0 typescript: '*' + eslint-plugin-sukka@9.5.0: + resolution: {integrity: sha512-G8Q2fcfMQHhyWAxf5i8/7OVCkGCa5vftYlX/hZjYy3B06YoBEHwBUevSOC8cMsYqd0tJbGW2obAJ3v5fSsmkQg==} + peerDependencies: + eslint: '>=9.29.0' + typescript: '*' + eslint-plugin-unused-imports@4.4.1: resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==} peerDependencies: @@ -2490,6 +2499,9 @@ packages: foxts@5.4.1: resolution: {integrity: sha512-v/k4gR+NtazTauirS9o1KzNII4x7vX5NsLVv2pN2apfcuBM/GMwQj09hUiKkDiJqAQEOF//ydDyXrztQpBmkJQ==} + foxts@5.4.2: + resolution: {integrity: sha512-FKzYjarnrPNwMOiqaGT6S+/V4jDd3nt/MuJK5CjmJla7VSfyA8ZKjYGcoAvIr17ldYKj79eBBEYiRrYklsDRFA==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -5917,6 +5929,16 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-plugin-sukka@9.5.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3): + dependencies: + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/utils': 8.59.4(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + eslint: 10.2.1(jiti@2.6.1) + foxts: 5.4.2 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)): dependencies: eslint: 10.2.1(jiti@2.6.1) @@ -6075,6 +6097,8 @@ snapshots: foxts@5.4.1: {} + foxts@5.4.2: {} + fsevents@2.3.3: optional: true