UNPKG

@rxap/nest-rabbitmq

Version:

This package provides a NestJS module for integrating with RabbitMQ using exchanges. It offers a client and server implementation for message queuing and supports features like health checks and error serialization. It simplifies the process of setting up

40 lines (39 loc) 2.2 kB
import { Logger } from '@nestjs/common/services/logger.service'; import { ClientProxy, ReadPacket, WritePacket } from '@nestjs/microservices'; import { ExchangeRmqOptions } from './options'; import { AmqpConnectionManager, ChannelWrapper } from 'amqp-connection-manager'; import { Channel, Connection } from 'amqplib'; import { EventEmitter } from 'events'; import { Observable, ReplaySubject } from 'rxjs'; export declare const REPLY_QUEUE = "amq.rabbitmq.reply-to"; export interface RmqExchangeOptions { options?: ExchangeRmqOptions; } export declare class ClientRMQExchange extends ClientProxy { protected readonly options: ExchangeRmqOptions; protected readonly logger: Logger; protected connection$: ReplaySubject<Connection>; protected client: AmqpConnectionManager | null; protected channel: ChannelWrapper | null; protected responseEmitter: EventEmitter; constructor(options: ExchangeRmqOptions, logger?: Logger); isConnected(): boolean | null; close(): void; connect(): Promise<Connection>; createChannel(): Promise<void>; createClient(): AmqpConnectionManager; mergeDisconnectEvent<T = any>(instance: any, source$: Observable<T>): Observable<T>; convertConnectionToPromise(): Promise<Connection>; setupExchange(channel: Channel, resolve: () => unknown): Promise<void>; consumeChannel(channel: Channel): Promise<void>; handleError(client: AmqpConnectionManager): void; handleDisconnectError(client: AmqpConnectionManager): void; handleMessage(packet: unknown, callback: (packet: WritePacket) => any): Promise<void>; handleMessage(packet: unknown, options: Record<string, unknown>, callback: (packet: WritePacket) => any): Promise<void>; protected publish(message: ReadPacket, callback: (packet: WritePacket) => any): () => void; protected dispatchEvent(packet: ReadPacket): Promise<any>; protected initializeSerializer(options: ExchangeRmqOptions): void; protected initializeDeserializer(options: ExchangeRmqOptions): void; protected mergeHeaders(requestHeaders?: Record<string, string>): Record<string, string> | undefined; protected parseMessageContent(content: Buffer): any; }