From 291c8db8342b97f21075ebae21e6fa7ff5eb5272 Mon Sep 17 00:00:00 2001 From: nekename <63245705+nekename@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:41:04 +0100 Subject: [PATCH 1/2] fix: terminate process when WebSocket connection to Stream Deck closes --- packages/plugin/src/plugin/connection.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/plugin/src/plugin/connection.ts b/packages/plugin/src/plugin/connection.ts index 2cabd03..e112a0a 100644 --- a/packages/plugin/src/plugin/connection.ts +++ b/packages/plugin/src/plugin/connection.ts @@ -74,6 +74,7 @@ class Connection extends EventEmitter { this.connection.resolve(webSocket); this.emit("connected", this.registrationParameters.info); }; + webSocket.onclose = (): void => process.exit(); } await this.connection.promise; From 6fe9bdf21a26a6f8f6b7953e875f3a1cb6a2c0d9 Mon Sep 17 00:00:00 2001 From: nekename <63245705+nekename@users.noreply.github.com> Date: Thu, 16 Apr 2026 12:45:22 +0100 Subject: [PATCH 2/2] fix(tests): prevent process.exit() from exiting when in the mock environment --- packages/plugin/src/plugin/__tests__/connection.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/plugin/src/plugin/__tests__/connection.test.ts b/packages/plugin/src/plugin/__tests__/connection.test.ts index 856416a..32b6788 100644 --- a/packages/plugin/src/plugin/__tests__/connection.test.ts +++ b/packages/plugin/src/plugin/__tests__/connection.test.ts @@ -34,6 +34,11 @@ describe("connection", () => { ({ connection } = await import("../connection.js")); process.argv = [...port, ...pluginUUID, ...registerEvent, ...info]; + + // @ts-expect-error: prevent process.exit() from exiting + vi.spyOn(process, "exit").mockImplementation(() => { + /* no-op */ + }); }); // Reset modules to purge the state.