File size: 956 Bytes
39371ea e7c75bb 39371ea e7c75bb 39371ea e7c75bb 39371ea e7c75bb 39371ea | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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);
});
},
};
}
|