diff --git a/public/database.worker.js b/public/database.worker.js index 4fcef70..79dad88 100755 --- a/public/database.worker.js +++ b/public/database.worker.js @@ -8,24 +8,34 @@ self.addEventListener('activate', (event) => { event.waitUntil(self.clients.claim()); // Become available to all pages }); -// Event listener for messages from clients +// ============================================ +// MESSAGE HANDLER +// ============================================ + self.addEventListener('message', async (event) => { const data = event.data; - console.log(data); + console.log('[Service Worker] Message received:', data.type); if (data.type === 'SCAN') { try { const myProcessesId = data.payload; if (myProcessesId && myProcessesId.length != 0) { - const toDownload = await scanMissingData(myProcessesId); - if (toDownload.length != 0) { - console.log('Sending TO_DOWNLOAD message'); - event.source.postMessage({ type: 'TO_DOWNLOAD', data: toDownload}); + const scanResult = await scanMissingData(myProcessesId, event.source); + + if (scanResult.toDownload.length != 0) { + console.log('[Service Worker] Sending TO_DOWNLOAD message'); + event.source.postMessage({ type: 'TO_DOWNLOAD', data: scanResult.toDownload }); + } + + if (scanResult.diffsToCreate.length > 0) { + console.log('[Service Worker] Sending DIFFS_TO_CREATE message'); + event.source.postMessage({ type: 'DIFFS_TO_CREATE', data: scanResult.diffsToCreate }); } } else { event.source.postMessage({ status: 'error', message: 'Empty lists' }); } } catch (error) { + console.error('[Service Worker] Scan error:', error); event.source.postMessage({ status: 'error', message: error.message }); } }