@waku/sdk
Version:
A unified SDK for easy creation and management of js-waku nodes.
29 lines (28 loc) • 919 B
TypeScript
import type { PeerId } from "@libp2p/interface";
import { type CoreProtocolResult, type IRoutingInfo } from "@waku/interfaces";
import type { PeerManager } from "../peer_manager/index.js";
type RetryManagerConfig = {
retryIntervalMs: number;
peerManager: PeerManager;
};
type AttemptCallback = (peerId: PeerId) => Promise<CoreProtocolResult>;
export type ScheduledTask = {
maxAttempts: number;
routingInfo: IRoutingInfo;
callback: AttemptCallback;
};
export declare class RetryManager {
private intervalID;
private readonly retryIntervalMs;
private inProgress;
private readonly queue;
private readonly peerManager;
constructor(config: RetryManagerConfig);
start(): void;
stop(): void;
push(callback: AttemptCallback, maxAttempts: number, routingInfo: IRoutingInfo): void;
private processQueue;
private scheduleTask;
private taskExecutor;
}
export {};