// lib/db.js
import { MongoClient } from "mongodb";

const uri = process.env.MONGODB_URI; // Connection string from .env.local
const options = {
  useUnifiedTopology: true,
  useNewUrlParser: true,
};

let client;
let clientPromise;

if (!process.env.MONGODB_URI) {
  throw new Error("Please add your MongoDB URI to .env.local");
}

if (process.env.NODE_ENV === "development") {
  // In development mode, use a global variable to keep the database connection
  // open across hot reloads
  if (!global.mongo) {
    global.mongo = { conn: null, promise: null };
  }
  client = global.mongo;
} else {
  // In production mode, create a new connection for every request
  client = {};
}

if (!client.promise) {
  client.promise = MongoClient.connect(uri, options).then((mongoClient) => {
    return mongoClient;
  });
}

export default client;