gatsby-pingbot/lib/dbConnect.ts

30 lines
518 B
TypeScript

import { connect } from 'mongoose'
interface CachedMongo {
conn: typeof import('mongoose')
promise: Promise<typeof import('mongoose')>
}
const { MONGODB_URI } = 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
}