nats-micro
Version:
NATS micro compatible extra-lightweight microservice library
49 lines (39 loc) • 918 B
text/typescript
import {
MessageHandler, RequestManyOptions, RequestOptions, SendOptions,
Subject, BrokerResponse,
} from './types/broker.js';
export interface Broker {
get clientId(): number | undefined;
get name(): string;
connect(): Promise<this>;
disconnect(): Promise<void>;
createInbox(): string;
on<T>(
subject: Subject,
listener: MessageHandler<T>,
): void;
on<T>(
subject: Subject,
listener: MessageHandler<T>,
queue: string | undefined,
): void;
off<T>(
subject: Subject,
listener: MessageHandler<T>,
): void;
send<T>(
subject: Subject,
data: T,
options?: SendOptions,
): Promise<void>;
requestMany<T, R>(
subject: Subject,
data: T,
options?: RequestManyOptions,
): AsyncIterable<BrokerResponse<R>>;
request<T, R>(
subject: Subject,
data: T,
options?: RequestOptions,
): Promise<BrokerResponse<R | undefined>>;
}