Class: PendingSubscriptionTracker
Gala Launchpad SDK 9.0.0-rc.5 / index / PendingSubscriptionTracker
Class: PendingSubscriptionTracker
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:224
Pending Subscription Tracker
Tracks pending subscriptions with timeout guards. Prevents memory leaks from subscriptions that never complete. Used when subscribing to streams where confirmation is required from the server.
Features:
- Automatic timeout handling
- Memory leak prevention (clears expired pending)
- Tracks pending duration
- Fast O(1) checks
Example
// Test case: Pending subscription tracking with timeouts
const tracker = new PendingSubscriptionTracker();
// Add pending subscription with 1 second timeout
tracker.addPending('sub-123', 1000);
console.assert(tracker.isPending('sub-123') === true);
console.assert(tracker.getPendingCount() === 1);
// Mark as completed (timeout won't fire)
tracker.removePending('sub-123');
console.assert(tracker.isPending('sub-123') === false);
// Check if subscription timed out
tracker.addPending('sub-456', 100);
await new Promise(r => setTimeout(r, 200)); // Wait for timeout
tracker.clearExpired(); // Manual cleanup
console.assert(tracker.isPending('sub-456') === false);
// Multiple pending subscriptions
tracker.addPending('sub-a', 1000);
tracker.addPending('sub-b', 1000);
tracker.addPending('sub-c', 1000);
console.assert(tracker.getPendingCount() === 3);
Since
6.6.0
Constructors
Constructor
new PendingSubscriptionTracker():
PendingSubscriptionTracker
Returns
PendingSubscriptionTracker
Methods
addPending()
addPending(
id,timeoutMs):void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:232
Add a pending subscription with timeout
Parameters
id
string
Subscription identifier (e.g., token name)
timeoutMs
number
Timeout duration in milliseconds
Returns
void
clear()
clear():
void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:262
Clear all pending subscriptions
Returns
void
clearExpired()
clearExpired():
void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:258
Manually clear expired pending subscriptions
Normally called automatically by the timeout, but can be called explicitly for cleanup.
Returns
void
getPendingCount()
getPendingCount():
number
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:251
Get count of pending subscriptions
Returns
number
Number of subscriptions currently pending
isPending()
isPending(
id):boolean
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:245
Check if a subscription is pending
Parameters
id
string
Subscription identifier to check
Returns
boolean
True if subscription is still pending
removePending()
removePending(
id):void
Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:238
Remove a pending subscription (e.g., when it completes or is cancelled)
Parameters
id
string
Subscription identifier to remove
Returns
void