UNPKG

rabbitmq-enterprise-toolkit

Version:

🚀 Enterprise-grade RabbitMQ wrapper for Node.js & TypeScript - High-throughput messaging with automatic retry, DLQ, batch processing & graceful shutdown. Production-ready AMQP client with zero message loss guarantee.

82 lines • 2.46 kB
export interface ConnectionConfig { host: string; port: number; username: string; password: string; vhost?: string; reconnectDelay?: number; heartbeat?: number; ssl?: boolean; } export interface RabbitMQConfig { connection: ConnectionConfig; defaultPrefetchCount?: number; gracefulShutdownTimeout?: number; highThroughput?: boolean; mode?: 'full' | 'publisher-only' | 'consumer-only'; } export interface RetryOptions { maxRetries: number; retryDelay: number; delayType: 'fixed' | 'exponential'; delay?: number; } export interface PublisherQueueOptions { queueName: string; durable?: boolean; createQueue?: boolean; skipQueueAssert?: boolean; } export interface QueueOptions extends PublisherQueueOptions { processor: (data: any) => Promise<void>; errCallback?: (error: Error, data?: any) => Promise<void>; prefetchCount?: number; retryOptions?: RetryOptions; exclusive?: boolean; autoDelete?: boolean; deadLetterExchange?: string; deadLetterRoutingKey?: string; } export interface PublishOptions { persistent?: boolean; messageId?: string; timestamp?: number; expiration?: string; priority?: number; batch?: boolean; exchange?: string; routingKey?: string; skipQueueAssert?: boolean; createQueue?: boolean; } export interface MessageHeaders { retryCount?: number; originalQueue?: string; errorMessage?: string; firstFailedAt?: number; [key: string]: any; } export interface ProcessedMessage { id: string; content: any; headers: MessageHeaders; timestamp: number; ack: () => Promise<void>; nack: (requeue?: boolean) => Promise<void>; reject: (requeue?: boolean) => Promise<void>; } export interface RabbitMQInstance { publish: (queueName: string, data: any, options?: PublishOptions) => Promise<void>; publishToExchange: (exchange: string, routingKey: string, data: any, options?: PublishOptions) => Promise<void>; registerQueue?: (options: QueueOptions) => Promise<void>; assertQueue: (options: PublisherQueueOptions) => Promise<void>; checkQueue: (queueName: string) => Promise<{ messageCount: number; consumerCount: number; }>; close: () => Promise<void>; isConnected: () => boolean; getConnectionInfo: () => ConnectionConfig | null; flush: () => Promise<void>; } //# sourceMappingURL=index.d.ts.map