import mysql from 'mysql';
import * as util from 'node:util';
export default ({ user, password, database, host, port }) => {
const pool = mysql.createPool({
user, password, database, host, port,
});
console.log('[mysql]: Connected to database', host);
pool.query = util.promisify(pool.query);
pool.queryRow = (...args) => pool.query(...args).then(res => res[0]);
pool.getConnection = util.promisify(pool.getConnection);
const originalGetConnection = pool.getConnection;
pool.getConnection = async function (...args) {
const connection = await originalGetConnection.apply(this, args);
if (!connection.query[util.promisify.custom]) {
connection.query = util.promisify(connection.query);
}
connection.queryRow = (...qArgs) =>
connection.query(...qArgs).then((rows) => rows[0]);
return connection;
};
return pool;
};
Modified at 2026-01-28 14:18:55