import mongoose from "mongoose"; const MONGODB_URI = process.env.MONGODB_URI; if (!MONGODB_URI) { throw new Error( "Veuillez définir la variable d'environnement MONGODB_URI dans votre fichier .env" ); } interface MongooseCache { conn: typeof mongoose | null; promise: Promise | null; } declare global { var mongoose: MongooseCache | undefined; } let cached: MongooseCache = global.mongoose || { conn: null, promise: null }; if (!global.mongoose) { global.mongoose = { conn: null, promise: null }; } async function connectDB(): Promise { if (cached.conn) { return cached.conn; } if (!cached.promise) { const opts = { bufferCommands: false, }; cached.promise = mongoose.connect(MONGODB_URI!, opts).then((mongoose) => { return mongoose; }); } try { cached.conn = await cached.promise; } catch (e) { cached.promise = null; throw e; } return cached.conn; } export default connectDB;