onmessage = msg => { const lines = msg.data; const request = indexedDB.open("embeddings"); request.onupgradeneeded = (event) => { console.log('onupgradeneeded') const db = event.target.result; db.createObjectStore('embeddings', {autoIncrement: true}); }; let embeddings; request.onsuccess = (event) => { const db = event.target.result; embeddings = db.transaction('embeddings', 'readwrite').objectStore('embeddings').getAll(); if (!embeddings || !embeddings.length) { createEmbeddings(lines) .then(xsembs => { embeddings = xsembs; const st = db .transaction('embeddings', 'readwrite') .objectStore('embeddings'); xsembs.forEach(emb => { console.log(emb); st.add(emb); }); }); } }; }