UNPKG

@wasserstoff/mangi-tg-bot

Version:

A powerful Telegram Bot SDK with built-in authentication, session management, and database integration

61 lines 1.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DatabaseManager = void 0; const mongoose_1 = __importDefault(require("mongoose")); const logger_1 = require("../logger"); class DatabaseManager { static instance; mongoConnection; constructor() { this.mongoConnection = mongoose_1.default.connection; this.setupMongoEventListeners(); } static getInstance() { if (!DatabaseManager.instance) { DatabaseManager.instance = new DatabaseManager(); } return DatabaseManager.instance; } setupMongoEventListeners() { this.mongoConnection.on("connected", () => { logger_1.logger.info("Mongoose connected to MongoDB"); }); this.mongoConnection.on("error", (err) => { logger_1.logger.error("Mongoose connection error:", err); }); this.mongoConnection.on("disconnected", () => { logger_1.logger.info("Mongoose disconnected from MongoDB"); }); } async connect(uri) { try { await mongoose_1.default.connect(uri, { serverApi: { version: "1", }, }); } catch (error) { logger_1.logger.error("Error connecting to MongoDB:", error); throw error; } } async disconnect() { try { await mongoose_1.default.disconnect(); logger_1.logger.info("MongoDB disconnected successfully"); } catch (error) { logger_1.logger.error("Error disconnecting from MongoDB:", error); throw error; } } getMongoConnection() { return this.mongoConnection; } } exports.DatabaseManager = DatabaseManager; //# sourceMappingURL=DatabaseManager.js.map