UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

52 lines (51 loc) 1.75 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.disconnect = exports.connect = void 0; require("reflect-metadata"); const log_1 = require("diginext-utils/dist/xconsole/log"); const mongoose_1 = __importDefault(require("mongoose")); const app_config_1 = require("../app.config"); const dbName = app_config_1.Config.DB_NAME; let db; async function connect(onConnected) { // console.log("Config.DB_URI :>> ", Config.DB_URI); // console.log("Config.DB_NAME :>> ", Config.DB_NAME); try { const mongoDB = await mongoose_1.default.connect(app_config_1.Config.DB_URI, { dbName, serverSelectionTimeoutMS: 5000, retryWrites: true, retryReads: true, connectTimeoutMS: 10000, socketTimeoutMS: 45000, maxPoolSize: 10, minPoolSize: 5, // Minimum connections to maintain }); db = mongoDB; if (typeof onConnected != "undefined") onConnected(db, mongoDB.connection); return db; } catch (e) { console.error(e); // Retry connection after a delay setTimeout(() => connect(onConnected), 5000); process.exit(1); // passing 1 - will exit the proccess with error } } exports.connect = connect; async function disconnect() { try { await mongoose_1.default.disconnect(); db = undefined; } catch (e) { (0, log_1.logError)(`[DB_DISCONNECT]`, e); } } exports.disconnect = disconnect; const AppDatabase = { db, connect, disconnect }; exports.default = AppDatabase;