@golem-sdk/golem-js
Version:
NodeJS and WebBrowser SDK for building apps running on Golem Network
27 lines (26 loc) • 1.12 kB
TypeScript
import { Logger } from "../utils";
import { Subject } from "rxjs";
import { EventDTO } from "ya-ts-client/dist/market-api";
export type CancellablePoll<T> = {
/** User defined name of the event stream for ease of debugging */
eventType: string;
/** Flag indicating if the reader is finished and no longer polling */
isFinished: boolean;
/** Triggers the poll using the fetcher provided when the CancellablePoll was created */
pollValues: () => AsyncGenerator<T>;
/**
* Cancels the polling operations, stopping the reader
*/
cancel: () => Promise<void>;
};
type CancellablePromise<T> = Promise<T> & {
cancel: () => void;
};
export type CancellableEventsFetcherWithCursor<T extends EventDTO> = (lastEventTimestamp: string) => CancellablePromise<T[]>;
export declare class EventReader {
private readonly logger;
constructor(logger: Logger);
pollToSubject<T>(generator: AsyncGenerator<T>, subject: Subject<T>): Promise<void>;
createReader<T extends EventDTO>(eventType: string, eventsFetcher: CancellableEventsFetcherWithCursor<T>): CancellablePoll<T>;
}
export {};