import { Collection, Db, MongoClient } from 'mongodb' import getConfig from 'next/config' import { Resolvable } from '../utils/Resolvable' import { GroupData, InsertMeta } from './groups' import { logger } from '../utils/logger' const { serverRuntimeConfig: { MONGO_URL, MONGO_USER, MONGO_PASS, MONGO_DB } } = getConfig() async function getDatabase() { const url = `mongodb://${MONGO_USER ? `${MONGO_USER}:${MONGO_PASS ?? ''}@` : ''}${MONGO_URL}` const client = new MongoClient(url) await client.connect() logger.info('Connected successfully to server') return client.db(MONGO_DB) as unknown as Omit & { collection: (_: 'setups') => Collection> } } export const database = new Resolvable(getDatabase)