UNPKG

mysql2

Version:

fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS

60 lines (53 loc) 1.72 kB
'use strict'; const { captureStackHolder } = require('./capture_local_err.js'); 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 stackHolder = captureStackHolder( PromisePoolNamespace.prototype.query ); 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, stackHolder); corePoolNamespace.query(sql, values, done); }); } execute(sql, values) { const corePoolNamespace = this.poolNamespace; const stackHolder = captureStackHolder( PromisePoolNamespace.prototype.execute ); 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, stackHolder); corePoolNamespace.execute(sql, values, done); }); } } module.exports = PromisePoolNamespace;