refactor: 数据库层从 better-sqlite3 迁移到 sql.js (WASM)

- 替换原生依赖 better-sqlite3 为纯 WASM 的 sql.js,消除 Electron ABI 版本不匹配问题
- 新增 sql.js 兼容层:runExec/queryOne/queryAll/runPragma/runTransaction
- initDatabase() 改为异步(WASM 加载需要)
- 每次写操作后自动 persist() 到磁盘
- electron-builder 配置:extraResources 打包 sql-wasm.wasm
- 移除 @electron/rebuild 依赖和 postinstall 脚本
- 设置 npmRebuild: false(不再需要原生模块重编译)
This commit is contained in:
thzxx
2026-04-17 16:26:53 +08:00
parent ba03b31677
commit 16266ebdde
4 changed files with 184 additions and 91 deletions
+2 -2
View File
@@ -76,7 +76,7 @@ function summarizeResult(toolName: string, result: Record<string, unknown>): str
}
}
export function setupIPC(): void {
export async function setupIPC(): Promise<void> {
ipcMain.handle('dialog:openFile', async (_, options?: { filters?: Array<{ name: string; extensions: string[] }> }) => {
const result = await dialog.showOpenDialog(mainWindow!, {
properties: ['openFile', 'multiSelections'],
@@ -267,7 +267,7 @@ export function setupIPC(): void {
// ══════════════════════════════════════════════
// 初始化数据库
initDatabase();
await initDatabase();
sendLog('success', '📦 SQLite 数据库已初始化');
// Sessions