From 71ed95251c0ddebfaa650b90572e1bf6447469d9 Mon Sep 17 00:00:00 2001 From: AV77web Date: Wed, 27 May 2026 13:16:56 +0200 Subject: [PATCH] correzione in connection.ts --- src/lib/db/connection.ts | 46 ++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/lib/db/connection.ts b/src/lib/db/connection.ts index 5a6add8..731981b 100644 --- a/src/lib/db/connection.ts +++ b/src/lib/db/connection.ts @@ -34,27 +34,37 @@ function readNumberEnv(name: string, fallback: number): number { return value; } -const poolConfig: PoolOptions = { - host: readEnv("MYSQL_HOST", "127.0.0.1"), - port: readNumberEnv("MYSQL_PORT", 3306), - user: readEnv("MYSQL_USER"), - password: readEnv("MYSQL_PASSWORD"), - database: readEnv("MYSQL_DATABASE"), - waitForConnections: true, - connectionLimit: readNumberEnv("MYSQL_CONNECTION_LIMIT", 10), - queueLimit: 0, - namedPlaceholders: true, - timezone: "Z", -}; - -export const db = globalThis.magRicambiMysqlPool ?? mysql.createPool(poolConfig); - -if (process.env.NODE_ENV !== "production") { - globalThis.magRicambiMysqlPool = db; +function createPoolConfig(): PoolOptions { + return { + host: readEnv("MYSQL_HOST", "127.0.0.1"), + port: readNumberEnv("MYSQL_PORT", 3306), + user: readEnv("MYSQL_USER"), + password: readEnv("MYSQL_PASSWORD"), + database: readEnv("MYSQL_DATABASE"), + waitForConnections: true, + connectionLimit: readNumberEnv("MYSQL_CONNECTION_LIMIT", 10), + queueLimit: 0, + namedPlaceholders: true, + timezone: "Z", + }; } +function getPool(): Pool { + if (!globalThis.magRicambiMysqlPool) { + globalThis.magRicambiMysqlPool = mysql.createPool(createPoolConfig()); + } + + return globalThis.magRicambiMysqlPool; +} + +export const db = new Proxy({} as Pool, { + get(_target, property, receiver) { + return Reflect.get(getPool(), property, receiver); + }, +}); + export async function getDbConnection(): Promise { - return db.getConnection(); + return getPool().getConnection(); } export async function testDbConnection(): Promise {