@message-queue-toolkit/amqp
Version:
AMQP adapter for message-queue-toolkit
42 lines (41 loc) • 2.16 kB
TypeScript
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>;
}