UNPKG

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
"use strict";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