From 81c06d5a4ad0e4579e40526dcb73e5f7728b21a3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 5 Feb 2023 16:11:47 +0100 Subject: [PATCH] backend-dev-utils: remove message listener when IPC client reuqest times out Signed-off-by: Patrik Oldsberg --- packages/backend-dev-utils/src/ipcClient.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/backend-dev-utils/src/ipcClient.ts b/packages/backend-dev-utils/src/ipcClient.ts index d3fa184a3f..87c1596a39 100644 --- a/packages/backend-dev-utils/src/ipcClient.ts +++ b/packages/backend-dev-utils/src/ipcClient.ts @@ -84,10 +84,7 @@ export class BackstageIpcClient { return; } - const timeout = setTimeout(() => { - reject(new Error('IPC request timed out')); - }, 1000); - timeout.unref(); + let timeout: NodeJS.Timeout | undefined = undefined; const messageHandler = (response: Response) => { if (response?.type !== responseType) { @@ -111,6 +108,12 @@ export class BackstageIpcClient { process.removeListener('message', messageHandler); }; + timeout = setTimeout(() => { + reject(new Error(`IPC request '${method}' with ID ${id} timed out`)); + process.removeListener('message', messageHandler); + }, 5000); + timeout.unref(); + process.addListener('message', messageHandler as () => void); }); });