Download src/storage.js from ProCreations/minicpm5-2b-webgpu: direct link, hf CLI and curl.
- Browser
- Download file 1.07 kB
-
https://huggingface.co/spaces/ProCreations/minicpm5-2b-webgpu/resolve/main/src/storage.js
- Command line
-
hf download hf://spaces/ProCreations/minicpm5-2b-webgpu/src/storage.js
-
curl -L -o storage.js https://huggingface.co/spaces/ProCreations/minicpm5-2b-webgpu/resolve/main/src/storage.js
1.07 kB
| let db; | |
| export async function database(){if(db)return db;db=await new Promise((resolve,reject)=>{const r=indexedDB.open('minicpm5-studio',1);r.onupgradeneeded=()=>r.result.createObjectStore('sessions',{keyPath:'id'});r.onsuccess=()=>resolve(r.result);r.onerror=()=>reject(r.error);});return db;} | |
| export async function saveSession(session){const d=await database();const clean={...session,messages:session.messages.map(m=>({...m,artifacts:m.artifacts?.map(a=>({...a,url:undefined}))})),updatedAt:Date.now()};await new Promise((res,rej)=>{const tx=d.transaction('sessions','readwrite');tx.objectStore('sessions').put(clean);tx.oncomplete=res;tx.onerror=()=>rej(tx.error);});} | |
| export async function loadSessions(){const d=await database();return new Promise((res,rej)=>{const r=d.transaction('sessions').objectStore('sessions').getAll();r.onsuccess=()=>res(r.result.sort((a,b)=>b.updatedAt-a.updatedAt));r.onerror=()=>rej(r.error);});} | |
| export function hydrate(session){session.messages.forEach(m=>m.artifacts?.forEach(a=>{a.url=URL.createObjectURL(a.blob);}));return session;} | |