bb-inspired
Version:
Core library for BB-inspired NestJS backend
35 lines (34 loc) • 1.69 kB
TypeScript
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>;
}