aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/mongodb.ts40
1 files changed, 8 insertions, 32 deletions
diff --git a/src/lib/mongodb.ts b/src/lib/mongodb.ts
index b3cb896..9e7c9bd 100644
--- a/src/lib/mongodb.ts
+++ b/src/lib/mongodb.ts
@@ -2,43 +2,19 @@ import mongoose from "mongoose";
const MONGODB_URI = process.env.MONGODB_URI;
-interface MongooseCache {
- conn: typeof mongoose | null;
- promise: Promise<typeof mongoose> | null;
-}
-
-declare global {
- var mongoose: MongooseCache | undefined;
-}
-
-let cached = global.mongoose;
-
-if (!cached) {
- cached = global.mongoose = { conn: null, promise: null };
-}
-
async function dbConnect() {
if (!MONGODB_URI) {
- throw new Error("Please define the MONGODB_URI environment variable inside .env.local");
+ throw new Error(
+ "Please define the MONGODB_URI environment variable inside .env.local"
+ );
}
- if (cached!.conn) return cached!.conn;
-
- if (!cached!.promise) {
- const opts = { bufferCommands: false };
- cached!.promise = mongoose.connect(MONGODB_URI, opts).then((mongoose) => {
- return mongoose;
- });
+ // If the connection is already established, return
+ if (mongoose.connection.readyState >= 1) {
+ return;
}
-
- try {
- cached!.conn = await cached!.promise;
- } catch (e) {
- cached!.promise = null;
- throw e;
- }
-
- return cached!.conn;
+
+ return mongoose.connect(MONGODB_URI);
}
export default dbConnect;