UNPKG

chronik-cache

Version:

A cache helper for chronik-client

61 lines (60 loc) 2.2 kB
interface WebSocketManagerOptions { wsTimeout?: number; wsExtendTimeout?: number; maxSubscriptions?: number; onEvict?: ((identifier: string, type: 'address' | 'token') => void) | null; } interface ChronikWebSocket { subscribeToAddress: (address: string) => void; unsubscribeFromAddress: (address: string) => void; subscribeToTokenId: (tokenId: string) => void; unsubscribeFromTokenId: (tokenId: string) => void; close: () => void; readyState: number; manuallyClosed: boolean; waitForOpen: () => Promise<void>; } interface ChronikClient { ws?: (config: any) => ChronikWebSocket; } export default class WebSocketManager { private chronik; addressWs: ChronikWebSocket | null; tokenWs: ChronikWebSocket | null; private addressSubscriptions; private tokenSubscriptions; private failover; private logger; private wsTimeout; private wsExtendTimeout; private maxSubscriptions; private onEvict; constructor(chronik: ChronikClient, failoverOptions?: any, enableLogging?: boolean, options?: WebSocketManagerOptions); private _ensureAddressWs; private _ensureTokenWs; initWebsocketForAddress(address: string, onNewTransaction: (address: string, txid: string, msgType: string) => Promise<void>): Promise<void>; initWebsocketForToken(tokenId: string, onNewTransaction: (tokenId: string, txid: string, msgType: string) => Promise<void>): Promise<void>; unsubscribeAddress(address: string): void; unsubscribeToken(tokenId: string): void; unsubscribeAll(): void; resetWsTimer(identifier: string, options?: { isToken?: boolean; }, onTimeout?: ((identifier: string) => void) | null): void; getRemainingTime(identifier: string, options?: { isToken?: boolean; }): { active: boolean; remainingSec?: number; message?: string; }; private _evictOldestAddressSubscription; private _evictOldestTokenSubscription; private _getInstanceCount; private _getSubscriptionCount; getRemainingTimeForAddress(address: string): { active: boolean; remainingSec?: number; message?: string; }; } export {};