From 2551c9923a17edf4ed35998675991f37e4097996 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Thu, 4 Sep 2025 04:46:27 +0200 Subject: [PATCH] Better error management for handleGetMyProcesses --- src/simple-server.ts | 51 +++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/src/simple-server.ts b/src/simple-server.ts index 320f730..934c0e5 100644 --- a/src/simple-server.ts +++ b/src/simple-server.ts @@ -262,31 +262,42 @@ class SimpleProcessHandlers { throw new Error('Invalid message type'); } - const processes = this.service.getProcesses(); - const myProcesses = await this.service.getMyProcesses(); - - if (!myProcesses || myProcesses.length === 0) { - throw new Error('No my processes found'); + if (!this.service.isPaired()) { + throw new Error('Device not paired'); } - const filteredProcesses: Record = {}; - for (const processId of myProcesses) { - const process = processes.get(processId); - console.log(processId, ':', process); + try { + const processes = this.service.getProcesses(); + const myProcesses = await this.service.getMyProcesses(); - if (process) { - filteredProcesses[processId] = process; + if (!myProcesses || myProcesses.length === 0) { + throw new Error('No my processes found'); } + + const filteredProcesses: Record = {}; + for (const processId of myProcesses) { + const process = processes.get(processId); + + if (process) { + filteredProcesses[processId] = process; + } else { + console.error(`Process ${processId} not found`); // should not happen + } + } + + const data = await this.service.getProcessesData(filteredProcesses); + + return { + type: MessageType.PROCESSES_RETRIEVED, + processes: filteredProcesses, + data, + messageId: event.data.messageId + }; + } catch (e) { + const errorMessage = e instanceof Error ? e.message : String(e || 'Unknown error'); + throw new Error(errorMessage); } - - const data = await this.service.getProcessesData(filteredProcesses); - - return { - type: MessageType.PROCESSES_RETRIEVED, - processes: filteredProcesses, - data, - messageId: event.data.messageId - }; + } } async handleMessage(event: ServerMessageEvent): Promise {