diff --git a/src/service-workers/database.worker.js b/src/service-workers/database.worker.js index 54b432c..a9e0548 100755 --- a/src/service-workers/database.worker.js +++ b/src/service-workers/database.worker.js @@ -45,6 +45,21 @@ self.addEventListener('message', async (event) => { } catch (error) { event.ports[0].postMessage({ status: 'error', message: error.message }); } + } else if (data.type === 'BATCH_WRITING') { + const { storeName, objects } = data.payload; + const db = await openDatabase(); + const tx = db.transaction(storeName, 'readwrite'); + const store = tx.objectStore(storeName); + + for (const { key, object } of objects) { + if (key) { + await store.put(object, key); + } else { + await store.put(object); + } + } + + await tx.done; } });