@jbagatta/johnny-cache
Version:
A robust distributed dictionary for coordinating and caching expensive operations in a distributed environment
23 lines (22 loc) • 946 B
TypeScript
import { NatsConnection } from "nats";
import { BuildCompleteSignal, MessageBroker } from "../../ports/message-broker";
export declare class JetstreamMessageBroker implements MessageBroker {
private readonly client;
private readonly stream;
constructor(client: NatsConnection, stream: string);
waitForSignal(signalId: string, timeoutMs: number): Promise<BuildCompleteSignal>;
publishSignal(signal: BuildCompleteSignal): Promise<void>;
publishKeyDeleted(namespace: string, key: string): Promise<void>;
onKeyDeleted(namespace: string, handle: (key: string) => void): Promise<void>;
close(): Promise<void>;
}
export declare class NatsConnectionOptions {
urls: string[];
stream: string;
token?: string;
userPass?: {
user: string;
pass: string;
};
}
export declare function createJetstreamMessageBroker(natsConnectionOptions: NatsConnectionOptions): Promise<JetstreamMessageBroker>;