From 460765dccdab54f54e745209764f33d4719fd319 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 3 May 2026 17:06:16 +0200 Subject: [PATCH 1/2] fix(partysocket): avoid module-scope random default --- .../partysocket/src/tests/module-scope.test.ts | 18 ++++++++++++++++++ packages/partysocket/src/ws.ts | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 packages/partysocket/src/tests/module-scope.test.ts diff --git a/packages/partysocket/src/tests/module-scope.test.ts b/packages/partysocket/src/tests/module-scope.test.ts new file mode 100644 index 00000000..d565a34e --- /dev/null +++ b/packages/partysocket/src/tests/module-scope.test.ts @@ -0,0 +1,18 @@ +/** + * @vitest-environment node + */ + +import { afterEach, expect, test, vi } from "vitest"; + +afterEach(() => { + vi.restoreAllMocks(); +}); + +test("does not generate random values while importing the websocket module", async () => { + vi.resetModules(); + const random = vi.spyOn(Math, "random"); + + await import("../ws"); + + expect(random).not.toHaveBeenCalled(); +}); diff --git a/packages/partysocket/src/ws.ts b/packages/partysocket/src/ws.ts index fe57bd89..92111eaa 100644 --- a/packages/partysocket/src/ws.ts +++ b/packages/partysocket/src/ws.ts @@ -124,7 +124,7 @@ export type Options = { const DEFAULT = { maxReconnectionDelay: 10000, - minReconnectionDelay: 1000 + Math.random() * 4000, + minReconnectionDelay: 3000, minUptime: 5000, reconnectionDelayGrowFactor: 1.3, connectionTimeout: 4000, From bf56dce7e65a6acae4f0ef501982db91d646a345 Mon Sep 17 00:00:00 2001 From: Sunil Pai Date: Mon, 11 May 2026 10:10:17 +0100 Subject: [PATCH 2/2] Create ninety-turtles-taste.md --- .changeset/ninety-turtles-taste.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/ninety-turtles-taste.md diff --git a/.changeset/ninety-turtles-taste.md b/.changeset/ninety-turtles-taste.md new file mode 100644 index 00000000..353bd895 --- /dev/null +++ b/.changeset/ninety-turtles-taste.md @@ -0,0 +1,5 @@ +--- +"partysocket": patch +--- + +fix(partysocket): avoid module-scope random default