@phnq/message
Version:
Asynchronous, incremental messaging client and server
18 lines (17 loc) • 746 B
TypeScript
import { type MessageTransport, type RequestMessage, type ResponseMessage } from "../MessageTransport";
type SubjectResolver<T, R> = (message: RequestMessage<T> | ResponseMessage<R>) => string;
interface Options<T, R> {
subscriptions: string[];
publishSubject: string | SubjectResolver<T, R>;
}
declare class LocalPubSubTransport<T, R> implements MessageTransport<T, R> {
private options;
private receiveHandler?;
private subIds;
private subjectById;
constructor(options: Options<T, R>);
send(message: RequestMessage<T> | ResponseMessage<R>): Promise<void>;
onReceive(receive: (message: RequestMessage<T> | ResponseMessage<R>) => void): void;
close(): Promise<void>;
}
export default LocalPubSubTransport;