feat: add database backup import/export (#194)

This commit is contained in:
Mai Trung Tiến
2026-02-25 15:32:38 +07:00
committed by GitHub
parent 07717bad60
commit 3cf900a0a1
3 changed files with 172 additions and 2 deletions

View File

@@ -779,6 +779,41 @@ export async function updateSettings(updates) {
return db.data.settings;
}
/**
* Export full database payload
*/
export async function exportDb() {
const db = await getDb();
return db.data || cloneDefaultData();
}
/**
* Import full database payload
*/
export async function importDb(payload) {
if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
throw new Error("Invalid database payload");
}
const nextData = {
...cloneDefaultData(),
...payload,
settings: {
...cloneDefaultData().settings,
...(payload.settings && typeof payload.settings === "object" && !Array.isArray(payload.settings)
? payload.settings
: {}),
},
};
const { data: normalized } = ensureDbShape(nextData);
const db = await getDb();
db.data = normalized;
await db.write();
return db.data;
}
/**
* Check if cloud is enabled
*/