gatsby-pingbot/lib/dbConnect.ts

30 lines
550 B
TypeScript
Raw Normal View History

2021-09-15 19:39:07 +00:00
import { connect } from "mongoose"
interface CachedMongo {
conn: typeof import("mongoose")
promise: Promise<typeof import("mongoose")>
}
const { MONGODB_URI, MONGODB_DB, MONGODB_COLLECTION } = process.env
let cached: CachedMongo = global.mongo
if (!cached) {
cached = global.mongo = {
conn: null,
promise: null
}
}
export default async function dbConnect() {
if (cached.conn)
return cached.conn
if (!cached.promise)
cached.promise = connect(MONGODB_URI)
cached.conn = await cached.promise
return cached.conn
}