gatsby-pingbot/lib/dbConnect.ts

30 lines
518 B
TypeScript
Raw Normal View History

2021-09-16 20:47:50 +00:00
import { connect } from 'mongoose'
2021-09-15 19:39:07 +00:00
interface CachedMongo {
2021-09-16 20:47:50 +00:00
conn: typeof import('mongoose')
promise: Promise<typeof import('mongoose')>
2021-09-15 19:39:07 +00:00
}
2021-09-16 20:47:50 +00:00
const { MONGODB_URI } = process.env
2021-09-15 19:39:07 +00:00
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
}