const mysql = require('mysql'); const config = require('komodo-sdk/config'); exports.ERROR_POOL_NOT_READY = new Error('DB-KOMODO: pool is not ready'); exports.pool = config.mysql ? mysql.createPool({ host: config.mysql.komodo.host || 'localhost', database: config.mysql.komodo.database || 'komodo', user: config.mysql.komodo.user || 'komodo', password: config.mysql.komodo.password, }) : null; exports.query = (query, values, cb) => { // pool.query.apply(null, arguments); if (!this.pool || !this.pool.query) { if (typeof cb === 'function') { cb(this.ERROR_POOL_NOT_READY); } return; } this.pool.query(query, values, cb); }; exports.format = (sql, values, cb) => new Promise((resolve, reject) => { if (!this.pool) { reject(this.ERROR_POOL_NOT_READY); if (typeof cb === 'function') cb(this.ERROR_POOL_NOT_READY); return; } this.pool.getConnection((err, connection) => { if (err) { reject(err); if (typeof cb === 'function') cb(err); return; } const formatted = connection.format(sql, values); connection.release(); resolve(formatted); if (typeof cb === 'function') cb(null, formatted); }); });