import { drizzle } from "drizzle-orm/vercel-postgres";
import { Pool } from "pg"; // Usando Pool para manejar la conexión
class DatabaseSingleton {
private static instance: DatabaseSingleton;
private pool: Pool;
private dbConnection: ReturnType<typeof drizzle>;
private constructor() {
this.pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
this.dbConnection = drizzle(this.pool as any);
}
public static getInstance(): DatabaseSingleton {
if (!DatabaseSingleton.instance) {
DatabaseSingleton.instance = new DatabaseSingleton();
}
return DatabaseSingleton.instance;
}
public getConnection() {
return this.dbConnection;
}
public async closeConnection() {
await this.pool.end();
}
}
export const database = DatabaseSingleton.getInstance().getConnection();