forked from UKSOURCE/ipv6
22 lines
673 B
TypeScript
22 lines
673 B
TypeScript
import mongoose from "mongoose";
|
|
|
|
/** Cached connection for Next.js hot reload (global is preserved across HMR). */
|
|
const globalForMongoose = globalThis as typeof globalThis & {
|
|
mongooseConn?: typeof mongoose;
|
|
};
|
|
|
|
export default async function connectDB(): Promise<typeof mongoose> {
|
|
const uri = process.env.MONGODB_URI;
|
|
if (!uri) {
|
|
throw new Error("MONGODB_URI is not set. Add it to .env (e.g. mongodb://localhost:27017/ipv6_summit).");
|
|
}
|
|
|
|
if (globalForMongoose.mongooseConn?.connection?.readyState === 1) {
|
|
return globalForMongoose.mongooseConn;
|
|
}
|
|
|
|
const conn = await mongoose.connect(uri);
|
|
globalForMongoose.mongooseConn = conn;
|
|
return conn;
|
|
}
|