1
0
forked from noxious/server
2024-12-27 02:50:11 +01:00

29 lines
721 B
TypeScript

// import { MikroORM } from '@mikro-orm/mariadb'
import { MikroORM } from '@mikro-orm/mysql'
import { appLogger } from './logger'
import config from '../../mikro-orm.config'
/**
* Singleton class for initializing and managing the database connection
*/
export class Database {
private static instance: MikroORM | undefined
private static async init(): Promise<MikroORM> {
try {
return await MikroORM.init(config)
} catch (error) {
appLogger.error(`MikroORM connection failed: ${error}`)
throw error
}
}
public static async getInstance(): Promise<MikroORM> {
if (!Database.instance) {
Database.instance = await Database.init()
}
return Database.instance
}
}