@truffle/dashboard-message-bus-client
Version:
Client library for accessing the truffle dashboard's message bus
31 lines (30 loc) • 1.43 kB
TypeScript
import { Message, Response } from "@truffle/dashboard-message-bus-common";
import { DashboardMessageBusConnection } from "lib/connection";
import { TypedEmitter } from "tiny-typed-emitter";
import { SubscriptionOptions } from "../";
interface ReceivedMessageLifecycleOptions<MessageType extends Message> {
message: MessageType;
connection: DashboardMessageBusConnection;
}
interface DashboardMessageBusSubscriptionEvents<MessageType extends Message> {
message: (messageLifecycle: ReceivedMessageLifecycle<MessageType>) => void;
end: () => void;
}
export type EvaluateMessageOptions<MessageType extends Message> = ReceivedMessageLifecycleOptions<MessageType>;
export declare class DashboardMessageBusSubscription<MessageType extends Message = Message> extends TypedEmitter<DashboardMessageBusSubscriptionEvents<MessageType>> {
private _predicate;
private _ended;
constructor({ id, type }: SubscriptionOptions);
_evaluateMessage({ message, connection }: EvaluateMessageOptions<MessageType>): void;
_end(): void;
}
export declare class ReceivedMessageLifecycle<MessageType extends Message> {
readonly message: MessageType;
private _connection;
private _responded;
constructor({ message, connection }: ReceivedMessageLifecycleOptions<MessageType>);
respond<ResponseType extends Response>({ payload }: {
payload: ResponseType["payload"];
}): Promise<void>;
}
export {};