const mysql = require("mysql2"); const errors = require("../node_modules/mysql2/lib/constants/errors"); class Database { constructor(config) { this.pool = mysql.createPool(config); } query(sql, values) { return new Promise((resolve, reject) => { this.pool.getConnection((err, connection) => { if (err) { reject(err); } else { connection.query(sql, values, (err, rows) => { if (err) { reject(err); } else { resolve(rows); } connection.release(); }); } }); }); } } let dbconfig; let guildDB; let gameDB; let q_guild; let q_game; module.exports = { configure: (config) => { dbconfig = config; }, query_guild: async (sql, values) => { if (!guildDB) { guildDB = new Database(dbconfig.guild); } if (!q_guild) { q_guild = guildDB.query.bind(guildDB); } return await q_guild(sql, values); }, query_game: async (sql, values) => { if (!gameDB) { gameDB = new Database(dbconfig.game); } if (!q_game) { q_game = gameDB.query.bind(gameDB); } return await q_game(sql, values); }, errors: errors, };