@amirmarmul/waba-common
Version:

31 lines (30 loc) • 1.28 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Connection = void 0;
const amqp_connection_manager_1 = __importDefault(require("amqp-connection-manager"));
const logger_1 = __importDefault(require("../../../core/utils/logger"));
class Connection {
static connections = {};
constructor() {
//
}
static createConnection(connectionType = 'default') {
const connection = amqp_connection_manager_1.default.connect([process.env.APP_MQ]);
connection.on('connect', () => {
logger_1.default.debug('Connection established successfully.', { connectionType });
});
connection.on('disconnect', (params) => {
logger_1.default.warn('Connection lost. ', { connectionType, reason: params.err.message });
this.connections[connectionType] = null;
});
this.connections[connectionType] = connection;
return connection;
}
static getConnection(connectionType = 'default') {
return this.connections[connectionType] ?? this.createConnection(connectionType);
}
}
exports.Connection = Connection;