From e67894bea723a6533bd4309c2d4ade9640d5a9c5 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Wed, 3 Jun 2026 12:20:27 +0800 Subject: [PATCH] chore: upgrade frontend tooling and speed up checks --- .github/workflows/ci.yml | 10 +- .husky/pre-commit | 2 +- apps/desktop/src/App.vue | 2 +- .../desktop/src/components/auth/LoginPage.vue | 2 +- .../src/components/chart/QueryChart.vue | 2 +- .../config/ConfigPassphraseDialog.vue | 2 +- .../components/config/DriverStoreDialog.vue | 2 +- .../connection/ConnectionDialog.vue | 2 +- .../connection/ConnectionErrorIndicator.vue | 2 +- .../diagram/SchemaDiagramDialog.vue | 2 +- .../src/components/diff/DataCompareDialog.vue | 2 +- .../src/components/diff/SchemaDiffDialog.vue | 2 +- .../src/components/editor/AiAssistant.vue | 2 +- .../src/components/editor/ColumnInfoPanel.vue | 2 +- .../components/editor/DangerConfirmDialog.vue | 2 +- .../components/editor/EditorSearchPanel.vue | 2 +- .../editor/EditorSettingsDialog.vue | 2 +- .../src/components/editor/QueryEditor.vue | 2 +- .../src/components/editor/QueryHistory.vue | 2 +- .../explain/ExplainPlanNodeTree.vue | 2 +- .../components/explain/ExplainPlanViewer.vue | 2 +- .../export/DatabaseExportDialog.vue | 2 +- .../export/ExportProgressDialog.vue | 2 +- apps/desktop/src/components/grid/DataGrid.vue | 15 +- .../components/grid/ImagePreviewDialog.vue | 2 +- .../components/grid/TemporalCellEditor.vue | 2 +- .../src/components/icons/AiProviderLogo.vue | 2 +- .../src/components/icons/DatabaseIcon.vue | 2 +- .../components/import/TableImportDialog.vue | 2 +- .../src/components/layout/AppSidebar.vue | 2 +- .../src/components/layout/AppTabBar.vue | 2 +- .../src/components/layout/AppToolbar.vue | 2 +- .../src/components/layout/ContentArea.vue | 2 +- .../src/components/layout/EditorToolbar.vue | 2 +- .../src/components/layout/UpdateDialog.vue | 2 +- .../src/components/layout/WelcomeScreen.vue | 2 +- .../src/components/layout/WindowControls.vue | 2 +- .../components/lineage/FieldLineageDialog.vue | 2 +- .../src/components/mongo/JsonEditNode.vue | 2 +- .../src/components/mongo/MongoDocBrowser.vue | 2 +- .../src/components/objects/ObjectBrowser.vue | 2 +- .../objects/ProcedureExecutionDialog.vue | 2 +- .../src/components/redis/RedisJsonTree.vue | 2 +- .../src/components/redis/RedisKeyBrowser.vue | 2 +- .../src/components/redis/RedisValueViewer.vue | 2 +- .../search/DatabaseSearchDialog.vue | 2 +- .../src/components/sidebar/ConnectionTree.vue | 13 +- .../src/components/sidebar/TreeItem.vue | 2 +- .../sidebar/VisibleDatabasesDialog.vue | 2 +- .../sql-file/SqlFileExecutionDialog.vue | 2 +- .../structure/TableStructureEditor.vue | 2 +- .../transfer/DataTransferDialog.vue | 2 +- .../src/components/ui/CustomContextMenu.vue | 2 +- .../src/components/ui/LightDropdown.vue | 2 +- .../context-menu/ContextMenuCheckboxItem.vue | 2 +- .../ui/context-menu/ContextMenuRadioItem.vue | 2 +- .../ui/context-menu/ContextMenuSubTrigger.vue | 2 +- .../components/ui/dialog/DialogContent.vue | 2 +- .../ui/dialog/DialogScrollContent.vue | 2 +- .../DropdownMenuCheckboxItem.vue | 2 +- .../dropdown-menu/DropdownMenuRadioItem.vue | 2 +- .../dropdown-menu/DropdownMenuSubTrigger.vue | 2 +- .../ui/searchable-select/SearchableSelect.vue | 2 +- .../src/components/ui/select/SelectItem.vue | 2 +- .../ui/select/SelectScrollDownButton.vue | 2 +- .../ui/select/SelectScrollUpButton.vue | 2 +- .../components/ui/select/SelectTrigger.vue | 2 +- .../src/components/ui/sheet/SheetContent.vue | 2 +- apps/desktop/src/lib/binaryCellDownload.ts | 8 +- apps/desktop/src/lib/configCrypto.ts | 8 +- apps/desktop/src/lib/http.ts | 2 +- apps/desktop/src/stores/queryStore.ts | 35 +- .../src/types/vue-virtual-scroller.d.ts | 7 +- apps/desktop/tsconfig.json | 3 +- apps/desktop/vite.config.ts | 64 +- package.json | 70 +- pnpm-lock.yaml | 2109 +++++++++-------- scripts/run-check.mjs | 85 + 78 files changed, 1382 insertions(+), 1177 deletions(-) create mode 100644 scripts/run-check.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 886b83474..997c06e3d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,14 +33,8 @@ jobs: - name: Install frontend dependencies run: pnpm install --frozen-lockfile - - name: Frontend format check - run: npx oxfmt --check "apps/desktop/src/**/*.{ts,vue}" - - - name: TypeScript check - run: npx vue-tsc --noEmit --project apps/desktop/tsconfig.json - - - name: Frontend tests - run: pnpm test + - name: Frontend check + run: pnpm check - name: Node package tests run: pnpm test:packages diff --git a/.husky/pre-commit b/.husky/pre-commit index dbe7ca203..a8d534270 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ -npx lint-staged +pnpm exec lint-staged # Only format and re-add Rust files that are already staged TOPLEVEL=$(git rev-parse --show-toplevel) diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index 967e9d5c1..5e34306a8 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -2,7 +2,7 @@ import { ref, computed, watch, onMounted, onUnmounted, nextTick, defineAsyncComponent } from "vue"; import { useI18n } from "vue-i18n"; import { invoke } from "@tauri-apps/api/core"; -import { ChevronsRight } from "lucide-vue-next"; +import { ChevronsRight } from "@lucide/vue"; import { TooltipProvider } from "@/components/ui/tooltip"; import AppToolbar from "@/components/layout/AppToolbar.vue"; import AppTabBar from "@/components/layout/AppTabBar.vue"; diff --git a/apps/desktop/src/components/auth/LoginPage.vue b/apps/desktop/src/components/auth/LoginPage.vue index ab6e916ca..ef51915ab 100644 --- a/apps/desktop/src/components/auth/LoginPage.vue +++ b/apps/desktop/src/components/auth/LoginPage.vue @@ -3,7 +3,7 @@ import { ref } from "vue"; import { useI18n } from "vue-i18n"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; -import { Lock, Loader2, ShieldCheck } from "lucide-vue-next"; +import { Lock, Loader2, ShieldCheck } from "@lucide/vue"; import AppLogo from "@/components/icons/AppLogo.vue"; const props = withDefaults( diff --git a/apps/desktop/src/components/chart/QueryChart.vue b/apps/desktop/src/components/chart/QueryChart.vue index 80f041747..5395f80a3 100644 --- a/apps/desktop/src/components/chart/QueryChart.vue +++ b/apps/desktop/src/components/chart/QueryChart.vue @@ -6,7 +6,7 @@ import { CanvasRenderer } from "echarts/renderers"; import { LineChart, BarChart, PieChart } from "echarts/charts"; import { GridComponent, TooltipComponent, LegendComponent } from "echarts/components"; import VChart from "vue-echarts"; -import { BarChart3 } from "lucide-vue-next"; +import { BarChart3 } from "@lucide/vue"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import type { QueryResult } from "@/types/database"; diff --git a/apps/desktop/src/components/config/ConfigPassphraseDialog.vue b/apps/desktop/src/components/config/ConfigPassphraseDialog.vue index 10445254b..f4804bd4f 100644 --- a/apps/desktop/src/components/config/ConfigPassphraseDialog.vue +++ b/apps/desktop/src/components/config/ConfigPassphraseDialog.vue @@ -1,7 +1,7 @@