From b6228c99cdc2a763ec7d7d6f828415d1287ffb15 Mon Sep 17 00:00:00 2001 From: yyh Date: Thu, 22 Jan 2026 16:15:19 +0800 Subject: [PATCH] refactor: extract sqlite types --- .../workflow/skill/hooks/sqlite/types.ts | 31 +++++++++++++++ .../skill/hooks/use-sqlite-database.ts | 38 +++++-------------- 2 files changed, 40 insertions(+), 29 deletions(-) create mode 100644 web/app/components/workflow/skill/hooks/sqlite/types.ts diff --git a/web/app/components/workflow/skill/hooks/sqlite/types.ts b/web/app/components/workflow/skill/hooks/sqlite/types.ts new file mode 100644 index 0000000000..027f30b98b --- /dev/null +++ b/web/app/components/workflow/skill/hooks/sqlite/types.ts @@ -0,0 +1,31 @@ +import type { MemoryVFS } from 'wa-sqlite/src/examples/MemoryVFS.js' + +type SQLiteModuleType = typeof import('wa-sqlite') + +export type SQLiteValue = string | number | bigint | Uint8Array | null + +export type SQLiteQueryResult = { + columns: string[] + values: SQLiteValue[][] +} + +export type SQLiteAPI = ReturnType +export type SQLiteVFS = Parameters[0] + +export type SQLiteClient = { + sqlite3: SQLiteAPI + sqlite: SQLiteModuleType + vfs: MemoryVFS +} + +export type SQLiteState = { + tables: string[] + isLoading: boolean + error: Error | null +} + +export type SQLiteAction + = | { type: 'reset' } + | { type: 'loading' } + | { type: 'success', tables: string[] } + | { type: 'error', error: Error } diff --git a/web/app/components/workflow/skill/hooks/use-sqlite-database.ts b/web/app/components/workflow/skill/hooks/use-sqlite-database.ts index 47bbc4f92c..24eb055206 100644 --- a/web/app/components/workflow/skill/hooks/use-sqlite-database.ts +++ b/web/app/components/workflow/skill/hooks/use-sqlite-database.ts @@ -1,12 +1,14 @@ -import type { MemoryVFS } from 'wa-sqlite/src/examples/MemoryVFS.js' +import type { + SQLiteAction, + SQLiteClient, + SQLiteQueryResult, + SQLiteState, + SQLiteValue, + SQLiteVFS, +} from './sqlite/types' import { useCallback, useEffect, useReducer, useRef } from 'react' -export type SQLiteValue = string | number | bigint | Uint8Array | null - -export type SQLiteQueryResult = { - columns: string[] - values: SQLiteValue[][] -} +export type { SQLiteQueryResult, SQLiteValue } from './sqlite/types' export type UseSQLiteDatabaseResult = { tables: string[] @@ -15,28 +17,6 @@ export type UseSQLiteDatabaseResult = { queryTable: (tableName: string, limit?: number) => Promise } -type SQLiteModuleType = typeof import('wa-sqlite') -type SQLiteAPI = ReturnType -type SQLiteVFS = Parameters[0] - -type SQLiteClient = { - sqlite3: ReturnType - sqlite: SQLiteModuleType - vfs: MemoryVFS -} - -type SQLiteState = { - tables: string[] - isLoading: boolean - error: Error | null -} - -type SQLiteAction - = | { type: 'reset' } - | { type: 'loading' } - | { type: 'success', tables: string[] } - | { type: 'error', error: Error } - const TABLES_QUERY = 'SELECT name FROM sqlite_master WHERE type=\'table\' AND name NOT LIKE \'sqlite_%\' ORDER BY name' let sqliteClientPromise: Promise | null = null