export const saveToDB = (key, value) => { return new Promise((resolve, reject) => { const request = indexedDB.open('LimeliteDB', 1); request.onupgradeneeded = e => { const db = e.target.result; if (!db.objectStoreNames.contains('analysisStore')) { db.createObjectStore('analysisStore'); } }; request.onsuccess = e => { const db = e.target.result; const tx = db.transaction('analysisStore', 'readwrite'); const store = tx.objectStore('analysisStore'); const req = value === null ? store.delete(key) : store.put(value, key); req.onsuccess = () => resolve(); req.onerror = () => reject(req.error); }; request.onerror = () => reject(request.error); }); }; export const loadFromDB = (key) => { return new Promise((resolve, reject) => { const request = indexedDB.open('LimeliteDB', 1); request.onupgradeneeded = e => { const db = e.target.result; if (!db.objectStoreNames.contains('analysisStore')) { db.createObjectStore('analysisStore'); } }; request.onsuccess = e => { const db = e.target.result; if (!db.objectStoreNames.contains('analysisStore')) return resolve(null); const tx = db.transaction('analysisStore', 'readonly'); const store = tx.objectStore('analysisStore'); const req = store.get(key); req.onsuccess = () => resolve(req.result); req.onerror = () => reject(req.error); }; request.onerror = () => reject(request.error); }); };