From 374749704127a83a2c9946cc796613f8ce6b4f3c Mon Sep 17 00:00:00 2001 From: Youwes09 Date: Sat, 13 Jun 2026 16:23:39 -0500 Subject: [PATCH] Fix: Remove Rust Read-Store-Files for Native TS (#97) --- src-tauri/src/commands/backup.rs | 17 ------------- src-tauri/src/lib.rs | 1 - src/lib/core/backup.ts | 43 ++++++++++++++------------------ 3 files changed, 19 insertions(+), 42 deletions(-) diff --git a/src-tauri/src/commands/backup.rs b/src-tauri/src/commands/backup.rs index 1e0672a..a6691b0 100644 --- a/src-tauri/src/commands/backup.rs +++ b/src-tauri/src/commands/backup.rs @@ -80,21 +80,4 @@ pub fn get_auto_backup_dir(app: tauri::AppHandle) -> String { let dir = backup_dir(&app); let _ = std::fs::create_dir_all(&dir); dir.to_string_lossy().into_owned() -} - -#[tauri::command] -pub fn read_store_files(app: tauri::AppHandle, names: Vec) -> Vec<(String, String)> { - let base = app - .path() - .app_local_data_dir() - .unwrap_or_else(|_| PathBuf::from(".")); - - names - .into_iter() - .map(|name| { - let content = std::fs::read_to_string(base.join(&name)) - .unwrap_or_else(|_| "{}".to_string()); - (name, content) - }) - .collect() } \ No newline at end of file diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 3fe8206..f66b80c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -107,7 +107,6 @@ pub fn run() { commands::backup::import_app_data, commands::backup::auto_backup_app_data, commands::backup::get_auto_backup_dir, - commands::backup::read_store_files, commands::storage::load_store, commands::storage::save_store, commands::storage::store_credential, diff --git a/src/lib/core/backup.ts b/src/lib/core/backup.ts index 8009de7..9643dfe 100644 --- a/src/lib/core/backup.ts +++ b/src/lib/core/backup.ts @@ -1,24 +1,27 @@ import { invoke } from "@tauri-apps/api/core"; import { - saveSettings, - saveLibrary, - saveUpdates, + loadSettings, saveSettings, + loadLibrary, saveLibrary, + loadUpdates, saveUpdates, } from "$lib/core/persistence/persist"; -const STORE_FILES = ["settings.json", "library.json", "updates.json"] as const; +async function collectStoreFiles(): Promise<{ name: string; bytes: Uint8Array }[]> { + const [settings, library, updates] = await Promise.all([ + loadSettings(), + loadLibrary(), + loadUpdates(), + ]); + + const enc = new TextEncoder(); + return [ + { name: "settings.json", bytes: enc.encode(JSON.stringify(settings)) }, + { name: "library.json", bytes: enc.encode(JSON.stringify(library)) }, + { name: "updates.json", bytes: enc.encode(JSON.stringify(updates)) }, + ]; +} export async function exportAppData(): Promise { - const entries: [string, string][] = await invoke("read_store_files", { - names: [...STORE_FILES], - }); - - const zip = buildZip( - entries.map(([name, content]) => ({ - name, - bytes: new TextEncoder().encode(content), - })) - ); - + const zip = buildZip(await collectStoreFiles()); await invoke("export_app_data", { bytes: Array.from(zip) }); } @@ -60,15 +63,7 @@ export async function importAppData(): Promise { export async function autoBackupAppData(): Promise { try { - const entries: [string, string][] = await invoke("read_store_files", { - names: [...STORE_FILES], - }); - const zip = buildZip( - entries.map(([name, content]) => ({ - name, - bytes: new TextEncoder().encode(content), - })) - ); + const zip = buildZip(await collectStoreFiles()); await invoke("auto_backup_app_data", { bytes: Array.from(zip) }); } catch (e) { console.warn("[moku] auto-backup failed:", e);