15 lines
625 B
TypeScript
15 lines
625 B
TypeScript
import mongoose from "mongoose";
|
|
|
|
declare global { var mongoose: { conn: mongoose.Mongoose | null; promise: Promise<mongoose.Mongoose> | null } }
|
|
let cached = global.mongoose;
|
|
|
|
if (!cached) { cached = global.mongoose = { conn: null, promise: null } }
|
|
|
|
export async function connectDB() {
|
|
if (cached.conn) return cached.conn;
|
|
if (!process.env.MONGODB_URI) { throw new Error("Please define MONGODB_URI in your environment variables") }
|
|
if (!cached.promise) { cached.promise = mongoose.connect(process.env.MONGODB_URI).then((mongoose) => mongoose) }
|
|
cached.conn = await cached.promise;
|
|
return cached.conn;
|
|
}
|