@mqueue/amqplib
Version:
MQueue adapter for amqplib AMQP v0.9.1
95 lines (90 loc) • 3.07 kB
TypeScript
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 };