fix(typedsocket): reject pending requests on disconnect to avoid hanging promises

This commit is contained in:
2026-02-26 16:58:33 +00:00
parent 1e53ee5b1a
commit 22ed5ebe59
3 changed files with 14 additions and 1 deletions

View File

@@ -1,5 +1,12 @@
# Changelog
## 2026-02-26 - 4.1.1 - fix(typedsocket)
reject pending requests on disconnect to avoid hanging promises
- Rejects all pending requests with Error('TypedSocket disconnected') when connection is lost
- Clears pendingRequests map to prevent memory leaks
- Preserves existing auto-reconnect scheduling behavior
## 2025-12-04 - 4.1.0 - feat(typedsocket)
Add SmartServe integration, tagging and improved client reconnect/backoff; update deps and tests

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@api.global/typedsocket',
version: '4.1.0',
version: '4.1.1',
description: 'A library for creating typed WebSocket connections, supporting bi-directional communication with type safety.'
}

View File

@@ -325,6 +325,12 @@ export class TypedSocket {
this.updateStatus('disconnected');
// Reject all pending requests — the connection is gone and they'll never receive a response
for (const [id, pending] of this.pendingRequests) {
pending.reject(new Error('TypedSocket disconnected'));
}
this.pendingRequests.clear();
if (this.clientOptions?.autoReconnect && this.retryCount < this.clientOptions.maxRetries) {
this.scheduleReconnect();
}