From 463f4d952c04053d481bcc3536971d822d38acbd Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Tue, 11 Feb 2025 09:15:01 +0100 Subject: [PATCH] Add updateMyProcesses --- src/service-workers/database.worker.js | 8 +++--- src/services/database.service.ts | 38 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/service-workers/database.worker.js b/src/service-workers/database.worker.js index 3f61627..2f869ef 100755 --- a/src/service-workers/database.worker.js +++ b/src/service-workers/database.worker.js @@ -62,10 +62,10 @@ self.addEventListener('message', async (event) => { if (data.type === 'UPDATE_PROCESSES') { try { - const { processIds } = data.payload; - console.log(processIds); - if (processIds && processIds.length != 0) { - for (const processId of processIds) { + const { myProcessesId } = data.payload; + console.log(myProcessesId); + if (myProcessesId && myProcessesId.length != 0) { + for (const processId of myProcessesId) { processesToScan.add(processId); } console.log(processesToScan); diff --git a/src/services/database.service.ts b/src/services/database.service.ts index 2eb491b..2e00af5 100755 --- a/src/services/database.service.ts +++ b/src/services/database.service.ts @@ -200,6 +200,44 @@ class Database { reject(new Error(`Failed to send message to service worker: ${error}`)); } }); + } + + public updateMyProcesses(payload: { myProcessesId: string[] }): Promise { + return new Promise((resolve, reject) => { + // Check if the service worker is active + if (!this.serviceWorkerRegistration?.active) { + reject(new Error('Service worker is not active')); + return; + } + + // Create a message channel for communication + const messageChannel = new MessageChannel(); + + // Handle the response from the service worker + messageChannel.port1.onmessage = (event) => { + if (event.data.status === 'success') { + resolve(); + } else { + const error = event.data.message; + reject(new Error(error || 'Unknown error occurred while scanning our processes')); + } + }; + + try { + console.log('Sending UPDATE_PROCESSES msg with payload', payload); + this.serviceWorkerRegistration.active.postMessage( + { + type: 'UPDATE_PROCESSES', + + payload, + }, + [messageChannel.port2], + + ); + } catch (error) { + reject(new Error(`Failed to send message to service worker: ${error}`)); + } + }); } public async getObject(storeName: string, key: string): Promise {