import { type Project, validateProject } from "../engine/schema.ts"; function db(): Promise { return new Promise((resolve, reject) => { const req = indexedDB.open("forma-projects", 1); req.onupgradeneeded = () => req.result.createObjectStore("projects"); req.onsuccess = () => resolve(req.result); req.onerror = () => reject(req.error); }); } export async function loadDraft(key = "active") { const d = await db(); return new Promise((resolve, reject) => { const r = d.transaction("projects").objectStore("projects").get(key); r.onsuccess = () => { d.close(); if (r.result) { try { validateProject(r.result); resolve(r.result); } catch { resolve(null); } } else resolve(null); }; r.onerror = () => reject(r.error); }); } export async function saveDraft(p: Project, key = "active") { const d = await db(); return new Promise((resolve, reject) => { const tx = d.transaction("projects", "readwrite"); tx.objectStore("projects").put(p, key); tx.oncomplete = () => { d.close(); resolve(); }; tx.onerror = () => reject(tx.error); }); }