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);
}