30 lines
617 B
TypeScript
30 lines
617 B
TypeScript
import { MongoClient, Db } from 'mongodb';
|
|
|
|
const uri = process.env.MONGODB_URI!;
|
|
|
|
let client: MongoClient;
|
|
let db: Db;
|
|
|
|
declare global {
|
|
// eslint-disable-next-line no-var
|
|
var _mongoClient: MongoClient | undefined;
|
|
}
|
|
|
|
export async function getDb(): Promise<Db> {
|
|
if (db) return db;
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
|
if (!global._mongoClient) {
|
|
global._mongoClient = new MongoClient(uri);
|
|
await global._mongoClient.connect();
|
|
}
|
|
client = global._mongoClient;
|
|
} else {
|
|
client = new MongoClient(uri);
|
|
await client.connect();
|
|
}
|
|
|
|
db = client.db();
|
|
return db;
|
|
}
|