Mike0021's picture
Add optional local-folder workspace with staged review and apply
e7c75bb verified
Raw History Blame Contribute Delete
956 Bytes
export async function openStorage() {
const db = await new Promise((resolve, reject) => {
const request = indexedDB.open('minicpm5-pi-workspace', 1);
request.onupgradeneeded = () => request.result.createObjectStore('state');
request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error);
});
return {
async load(key = 'current') {
return new Promise((resolve, reject) => {
const request = db.transaction('state').objectStore('state').get(key);
request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error);
});
},
async save(value, key = 'current') {
return new Promise((resolve, reject) => {
const tx = db.transaction('state', 'readwrite'); tx.objectStore('state').put(value, key);
tx.oncomplete = resolve; tx.onerror = () => reject(tx.error); tx.onabort = () => reject(tx.error);
});
},
};
}