import { PoolConnection, Pool, createPool } from 'mariadb'; type ConnectionConfig = { host: string, user: string, password: string, database: string, port: number, }; export default class Database { private static instance: Database; private pool: Pool; private constructor(config: ConnectionConfig) { this.pool = createPool(config); } public static getInstance(): Database { if (!Database.instance) { Database.instance = new Database({ host: process.env.DATABASE_HOST as string, user: process.env.DATABASE_USER as string, password: process.env.DATABASE_PASSWORD as string, database: process.env.DATABASE_SCHEMA as string, port: 3306 }); } return Database.instance; } public async getConnection(): Promise { return this.pool.getConnection(); } }