Improve message listener

This commit is contained in:
omaroughriss 2025-11-27 16:42:15 +01:00
parent 92a9c6e455
commit d161402e1e

View File

@ -8,24 +8,34 @@ self.addEventListener('activate', (event) => {
event.waitUntil(self.clients.claim()); // Become available to all pages event.waitUntil(self.clients.claim()); // Become available to all pages
}); });
// Event listener for messages from clients // ============================================
// MESSAGE HANDLER
// ============================================
self.addEventListener('message', async (event) => { self.addEventListener('message', async (event) => {
const data = event.data; const data = event.data;
console.log(data); console.log('[Service Worker] Message received:', data.type);
if (data.type === 'SCAN') { if (data.type === 'SCAN') {
try { try {
const myProcessesId = data.payload; const myProcessesId = data.payload;
if (myProcessesId && myProcessesId.length != 0) { if (myProcessesId && myProcessesId.length != 0) {
const toDownload = await scanMissingData(myProcessesId); const scanResult = await scanMissingData(myProcessesId, event.source);
if (toDownload.length != 0) {
console.log('Sending TO_DOWNLOAD message'); if (scanResult.toDownload.length != 0) {
event.source.postMessage({ type: 'TO_DOWNLOAD', data: toDownload}); 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 { } else {
event.source.postMessage({ status: 'error', message: 'Empty lists' }); event.source.postMessage({ status: 'error', message: 'Empty lists' });
} }
} catch (error) { } catch (error) {
console.error('[Service Worker] Scan error:', error);
event.source.postMessage({ status: 'error', message: error.message }); event.source.postMessage({ status: 'error', message: error.message });
} }
} }