UNPKG

@mqueue/amqplib

Version:

MQueue adapter for amqplib AMQP v0.9.1

95 lines (90 loc) 3.07 kB
import { IncomingQueueAdapter, IncomingQueueMessageAdapterListener, OutgoingQueueAdapter, QueueMessage } from '@mqueue/queue'; import { Channel, Options, connect } from 'amqplib'; declare class AmqplibIncomingQueue implements IncomingQueueAdapter { channel: Channel; queueName: string; type: string; /** * Use a pre-connected Amqplib Channel to initialise MQueue. * * Note: You probably want `AmqplibQueue.Incoming.connect()` * * ```ts * import { connect } from "amqplib"; * const connection = await connect(url); * const channel = await connection.createChannel(); * const incomingQueue = new MQueue.Incoming( * new AmqplibQueue.Incoming(channel, "queue-name") * ); * ``` */ constructor(channel: Channel, queueName: string); /** * Connect to an AMQPv0.9.1 Queue and initialise MQueue. * * ```ts * const incomingQueue = new MQueue.Incoming( * await AmqplibQueue.Incoming.connect( * "amqp://rabbitmq:5271", * "queue-name", * { socketOptions: { timeout: 100_000 } }, * ) * ); * ``` */ static connect(url: string | Options.Connect, queueName: string, { socketOptions, }?: { socketOptions?: Parameters<typeof connect>[1] & { timeout?: number; }; }): Promise<AmqplibIncomingQueue>; healthcheck(): Promise<void>; close(): Promise<void>; consume(callback: IncomingQueueMessageAdapterListener): Promise<void>; } declare class AmqplibOutgoingQueue implements OutgoingQueueAdapter { client: Channel; queueName: string; type: string; /** * Use a pre-connected Amqplib Channel to initialise MQueue. * * Note: You probably want `AmqplibQueue.Outgoing.connect()` * * ```ts * import { connect } from "amqplib"; * const connection = await connect(url); * const channel = await connection.createChannel(); * const outgoingQueue = new MQueue.Outgoing( * new AmqplibQueue.Outgoing(channel, "queue-name") * ); * ``` */ constructor(client: Channel, queueName: string); /** * Connect to an AMQPv0.9.1 Queue and initialise MQueue. * * ```ts * const outgoingQueue = new MQueue.Outgoing( * await AmqplibQueue.Outgoing.connect( * "amqp://rabbitmq:5271", * "queue-name", * { socketOptions: { timeout: 100_000 } }, * ) * ); * ``` */ static connect(options: string | Options.Connect, queueName: string, { socketOptions, }?: { socketOptions?: Parameters<typeof connect>[1] & { timeout?: number; }; }): Promise<AmqplibOutgoingQueue>; sendMessage(message: QueueMessage): Promise<void>; healthcheck(): Promise<void>; close(): Promise<void>; } declare class AmqplibQueue { private constructor(); static Outgoing: typeof AmqplibOutgoingQueue; static Incoming: typeof AmqplibIncomingQueue; } export { AmqplibIncomingQueue, AmqplibOutgoingQueue, AmqplibQueue };