UNPKG

@message-queue-toolkit/amqp

Version:
42 lines (41 loc) 2.16 kB
import type { CommonCreationConfigType, QueueConsumerDependencies, QueueDependencies, QueueOptions } from '@message-queue-toolkit/core'; import { AbstractQueueService } from '@message-queue-toolkit/core'; import type { Channel, ChannelModel, Message } from 'amqplib'; import type { Options } from 'amqplib'; import type { AmqpConnectionManager, ConnectionReceiver } from './AmqpConnectionManager.ts'; export type AMQPDependencies = QueueDependencies & { amqpConnectionManager: AmqpConnectionManager; }; export type AMQPConsumerDependencies = AMQPDependencies & QueueConsumerDependencies; export type AMQPQueueConfig = Options.AssertQueue; export type AMQPQueueCreationConfig = { queueOptions: AMQPQueueConfig; queueName: string; updateAttributesIfExists?: boolean; }; export type AMQPTopicCreationConfig = AMQPQueueCreationConfig & { exchange: string; topicPattern?: string; }; export type AMQPTopicPublisherConfig = { exchange: string; } & CommonCreationConfigType; export type AMQPQueueLocator = { queueName: string; }; export type AMQPTopicLocator = AMQPQueueLocator & { exchange: string; }; export declare abstract class AbstractAmqpService<MessagePayloadType extends object, DependenciesType extends AMQPDependencies = AMQPDependencies, ExecutionContext = unknown, PrehandlerOutput = unknown, CreationConfig extends CommonCreationConfigType = AMQPQueueCreationConfig, LocatorConfig extends object = AMQPQueueLocator> extends AbstractQueueService<MessagePayloadType, Message, DependenciesType, CreationConfig, LocatorConfig, QueueOptions<CreationConfig, LocatorConfig>, ExecutionContext, PrehandlerOutput> implements ConnectionReceiver { protected connection?: ChannelModel; private connectionManager; protected channel: Channel; private isShuttingDown; constructor(dependencies: DependenciesType, options: QueueOptions<CreationConfig, LocatorConfig>); receiveNewConnection(connection: ChannelModel): Promise<void>; protected abstract createMissingEntities(): Promise<void>; private destroyChannel; init(): Promise<void>; reconnect(): Promise<void>; close(): Promise<void>; }