@wasserstoff/mangi-tg-bot
Version:
A powerful Telegram Bot SDK with built-in authentication, session management, and database integration
61 lines • 1.98 kB
JavaScript
;
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