bc/node_modules/mysql2/lib/promise/pool_cluster.js
2025-05-13 04:14:01 +00:00

55 lines
1.5 KiB
JavaScript

'use strict';
const PromisePoolConnection = require('./pool_connection');
const makeDoneCb = require('./make_done_cb');
class PromisePoolNamespace {
constructor(poolNamespace, thePromise) {
this.poolNamespace = poolNamespace;
this.Promise = thePromise || Promise;
}
getConnection() {
const corePoolNamespace = this.poolNamespace;
return new this.Promise((resolve, reject) => {
corePoolNamespace.getConnection((err, coreConnection) => {
if (err) {
reject(err);
} else {
resolve(new PromisePoolConnection(coreConnection, this.Promise));
}
});
});
}
query(sql, values) {
const corePoolNamespace = this.poolNamespace;
const localErr = new Error();
if (typeof values === 'function') {
throw new Error(
'Callback function is not available with promise clients.'
);
}
return new this.Promise((resolve, reject) => {
const done = makeDoneCb(resolve, reject, localErr);
corePoolNamespace.query(sql, values, done);
});
}
execute(sql, values) {
const corePoolNamespace = this.poolNamespace;
const localErr = new Error();
if (typeof values === 'function') {
throw new Error(
'Callback function is not available with promise clients.'
);
}
return new this.Promise((resolve, reject) => {
const done = makeDoneCb(resolve, reject, localErr);
corePoolNamespace.execute(sql, values, done);
});
}
}
module.exports = PromisePoolNamespace;