File size: 719 Bytes
81fc505 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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);
}
|