UNPKG

bb-inspired

Version:

Core library for BB-inspired NestJS backend

35 lines (34 loc) 1.69 kB
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common'; import { Options } from 'amqplib'; import { MessageBrokerOptions, Message, MessageHandler } from '../../interfaces/message.interfaces'; export declare class RabbitMQService implements OnModuleInit, OnModuleDestroy { private readonly options; private readonly logger; private connection; private channel; private readonly handlers; private isConnected; private connectionRetries; private readonly maxRetries; constructor(options: MessageBrokerOptions); getConnectionStatus(): boolean; onModuleInit(): Promise<void>; onModuleDestroy(): Promise<void>; connect(): Promise<void>; disconnect(): Promise<void>; createExchange(name: string, type?: string, options?: Options.AssertExchange): Promise<void>; createQueue(name: string, options?: Options.AssertQueue): Promise<void>; bindQueue(queue: string, exchange: string, routingKey: string): Promise<void>; publish(routingKey: string, message: Omit<Message, 'id' | 'timestamp'>): Promise<void>; publishToMany(routingKeys: string[], message: Omit<Message, 'id' | 'timestamp'>): Promise<void>; publishWithOptions(routingKey: string, message: Omit<Message, 'id' | 'timestamp'>, options: Record<string, any>): Promise<void>; subscribe(routingKey: string, handler: MessageHandler): Promise<void>; unsubscribe(routingKey: string, handler?: MessageHandler): Promise<void>; private createMessageHandler; private shouldRequeueMessage; private handleConnectionError; private handleConnectionClose; private restoreSubscriptions; pause(): Promise<void>; resume(): Promise<void>; }