mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 18:44:16 +00:00
53 lines
1.2 KiB
JavaScript
Executable File
53 lines
1.2 KiB
JavaScript
Executable File
import mongoose from "mongoose"
|
|
|
|
function getConnectionConfig(obj) {
|
|
const { DB_USER, DB_DRIVER, DB_NAME, DB_PWD, DB_HOSTNAME, DB_PORT, DB_AUTH_SOURCE } = obj
|
|
|
|
let auth = [
|
|
DB_DRIVER ?? "mongodb",
|
|
"://",
|
|
]
|
|
|
|
auth.push(DB_HOSTNAME ?? "localhost")
|
|
auth.push(`:${DB_PORT ?? "27017"}`)
|
|
|
|
auth = auth.join("")
|
|
|
|
const params = {
|
|
auth: {},
|
|
dbName: DB_NAME,
|
|
user: DB_USER,
|
|
pass: DB_PWD,
|
|
}
|
|
|
|
if (DB_AUTH_SOURCE) {
|
|
params.auth.authSource = DB_AUTH_SOURCE
|
|
}
|
|
|
|
return [
|
|
auth,
|
|
params,
|
|
]
|
|
}
|
|
|
|
export default class DBManager {
|
|
initialize = async (config) => {
|
|
console.log(`🔌 Connecting to DB [${process.env.DB_HOSTNAME}]...`)
|
|
|
|
const dbConfig = getConnectionConfig(config ?? process.env)
|
|
|
|
mongoose.set("strictQuery", false)
|
|
|
|
const connection = await mongoose.connect(...dbConfig)
|
|
.catch((err) => {
|
|
console.log(`❌ Failed to connect to DB, retrying...\n`)
|
|
console.log(err)
|
|
|
|
return false
|
|
})
|
|
|
|
if (connection) {
|
|
console.log(`✅ Connected to DB.`)
|
|
}
|
|
}
|
|
} |