simple-rabbitmq-message-broker
Version:
35 lines (33 loc) • 1.06 kB
TypeScript
import * as amqplib from 'amqplib';
export declare type MessageHandler = (msg: any) => any;
/**
* Broker for async messaging
*/
export declare abstract class MessageBroker {
queues: any;
connection?: amqplib.Connection;
_channel?: amqplib.Channel;
get channel(): amqplib.Channel;
/**
* Trigger init connection method
*/
constructor();
/**
* Initialize connection to rabbitMQ
*/
init(): Promise<MessageBroker>;
/**
/**
* Send message to queue
* @param {String} queue Queue name
* @param {Object} msg Message as Buffer
*/
send(queue: string, msg: any): Promise<boolean>;
sendWithReply(queue: string, msg: any): Promise<unknown>;
/**
* @param {String} queue Queue name
* @param {Function} handler Handler that will be invoked with given message and acknowledge function (msg, ack)
*/
subscribe(queue: string, handler: MessageHandler): Promise<() => Promise<void>>;
unsubscribe(queue: string, handler: MessageHandler): Promise<void>;
}