utils.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.get = void 0;
  4. const http = require("http");
  5. const timers_1 = require("timers");
  6. const errors_1 = require("../errors");
  7. /**
  8. * @internal
  9. */
  10. function get(url, options = {}) {
  11. return new Promise((resolve, reject) => {
  12. /* eslint-disable prefer-const */
  13. let timeoutId;
  14. const request = http
  15. .get(url, options, response => {
  16. response.setEncoding('utf8');
  17. let body = '';
  18. response.on('data', chunk => (body += chunk));
  19. response.on('end', () => {
  20. (0, timers_1.clearTimeout)(timeoutId);
  21. resolve({ status: response.statusCode, body });
  22. });
  23. })
  24. .on('error', error => {
  25. (0, timers_1.clearTimeout)(timeoutId);
  26. reject(error);
  27. })
  28. .end();
  29. timeoutId = (0, timers_1.setTimeout)(() => {
  30. request.destroy(new errors_1.MongoCryptKMSRequestNetworkTimeoutError(`request timed out after 10 seconds`));
  31. }, 10000);
  32. });
  33. }
  34. exports.get = get;
  35. //# sourceMappingURL=utils.js.map