mirror of
https://github.com/MedzikUser/gatsby-pingbot
synced 2024-08-15 03:20:27 +00:00
30 lines
550 B
TypeScript
30 lines
550 B
TypeScript
|
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
|
||
|
}
|