rbt_mssql-pool-party
Version:
Extension of mssql that provides management of multiple connection pools, dsns, retries, and more
33 lines (32 loc) • 1.74 kB
JavaScript
;var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = requestStreamPromise;var _aggregateError = _interopRequireDefault(require("aggregate-error"));
function requestStreamPromise(request, originalMethod, attempts) {
return function () {for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}return new Promise(function (resolve, reject) {
var errors = [];
var recordsetHandler = function recordsetHandler(recordset) {
request.emit('poolparty_recordset', recordset, attempts.attemptNumber);
};
var rowHandler = function rowHandler(row) {
request.emit('poolparty_row', row, attempts.attemptNumber);
};
var errorHandler = function errorHandler(err) {
errors.push(err);
request.emit('poolparty_error', err, attempts.attemptNumber);
};
var doneHandler = function doneHandler(result) {
request.removeListener('_recordset', recordsetHandler);
request.removeListener('_row', rowHandler);
request.removeListener('_error', errorHandler);
request.removeListener('_done', doneHandler);
if (errors.length > 0) {
return reject(new _aggregateError["default"](errors));
}
return resolve(result);
};
originalMethod.apply(request, args);
request.on('_recordset', recordsetHandler);
request.on('_row', rowHandler);
request.on('_error', errorHandler);
request.on('_done', doneHandler);
});};
}module.exports = exports.default;
//# sourceMappingURL=request-stream-promise.js.map