diff --git a/src/services/database.service.ts b/src/services/database.service.ts index 23f64a5..c5a264e 100755 --- a/src/services/database.service.ts +++ b/src/services/database.service.ts @@ -144,15 +144,17 @@ export class Database { try { await Promise.race([ this.checkForUpdates(), - new Promise((_, reject) => setTimeout(() => reject(new Error('Update timeout')), 10000)) + new Promise((_, reject) => setTimeout(() => reject(new Error('Update timeout')), 5000)) ]); + console.log('✅ Service worker updates completed'); } catch (error) { - console.warn('Service worker update failed or timed out:', error); + console.warn('⚠️ Service worker update failed or timed out:', error); // Continue anyway - don't block the initialization } // Hide spinner once service worker is ready this.hideServiceWorkerSpinner(); + console.log('✅ Service worker initialization completed'); // Set up a global message listener for responses from the service worker. navigator.serviceWorker.addEventListener('message', async (event) => { @@ -161,21 +163,24 @@ export class Database { }); // Set up a periodic check to ensure the service worker is active and to send a SCAN message. - this.serviceWorkerCheckIntervalId = window.setInterval(async () => { - try { - const activeWorker = this.serviceWorkerRegistration?.active || (await this.waitForServiceWorkerActivation(this.serviceWorkerRegistration!)); - if (activeWorker) { - const service = await Services.getInstance(); - const payload = await service.getMyProcesses(); - if (payload && payload.length != 0) { - activeWorker.postMessage({ type: 'SCAN', payload }); + // Wait a bit before starting the interval to ensure services are ready + setTimeout(() => { + this.serviceWorkerCheckIntervalId = window.setInterval(async () => { + try { + const activeWorker = this.serviceWorkerRegistration?.active || (await this.waitForServiceWorkerActivation(this.serviceWorkerRegistration!)); + if (activeWorker) { + const service = await Services.getInstance(); + const payload = await service.getMyProcesses(); + if (payload && payload.length != 0) { + activeWorker.postMessage({ type: 'SCAN', payload }); + } } + } catch (error) { + console.warn('Service worker scan failed:', error); + // Continue the interval even if one scan fails } - } catch (error) { - console.warn('Service worker scan failed:', error); - // Continue the interval even if one scan fails - } - }, 5000); + }, 5000); + }, 10000); // Wait 10 seconds before starting the interval } catch (error) { console.error('Service Worker registration failed:', error); }