@tmlmobilidade/connectors
Version:
This package provides pre-made database connectors to streamline development and reduce boilerplate. By using these connectors, you can avoid re-implementing controller classes every time, ensuring consistency and saving development time.
38 lines (37 loc) • 1.06 kB
TypeScript
import { Options, Replies } from 'amqplib';
export interface RabbitMQConfig {
socketOptions?: any;
uri: Options.Connect | string;
}
export declare class RabbitMQConnector {
private channel?;
private config;
private connection?;
constructor(config: RabbitMQConfig);
/**
* Connects to RabbitMQ and creates a channel.
*/
connect(): Promise<void>;
/**
* Disconnects from RabbitMQ.
*/
disconnect(): Promise<void>;
/**
* Publishes a message to a queue.
*/
publish(queue: string, message: Buffer | string, options?: Options.Publish): Promise<Replies.Empty>;
/**
* Subscribes to a queue and processes messages.
*/
subscribe(queue: string, callback: (message: Buffer | string) => void): Promise<void>;
}
/**
* Singleton class for RabbitMQConnector.
*/
declare class RabbitMQService extends RabbitMQConnector {
private static _instance;
private constructor();
static getInstance(): Promise<RabbitMQService>;
}
export declare const rabbitMQ: RabbitMQService;
export {};