| import mongoose from "mongoose"; | |
| import { env } from "./env.js"; | |
| let connectPromise = null; | |
| export function isDatabaseReady() { | |
| return mongoose.connection.readyState === 1; | |
| } | |
| export function connectDatabase() { | |
| if (!connectPromise) { | |
| connectPromise = mongoose.connect(env.mongoUri).catch((error) => { | |
| connectPromise = null; | |
| throw error; | |
| }); | |
| } | |
| return connectPromise; | |
| } | |
| export function scheduleReconnect(delayMs = 5000) { | |
| setTimeout(() => { | |
| connectDatabase() | |
| .then(() => { | |
| console.log("MongoDB connected"); | |
| }) | |
| .catch((error) => { | |
| console.error("Database connection failed", error.message); | |
| scheduleReconnect(delayMs); | |
| }); | |
| }, delayMs); | |
| } | |