Metzploreur/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/httpRequest.js
clement callaert 244d45ceb8 Version 2
2023-11-01 17:33:25 +01:00

41 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.httpRequest = void 0;
const property_provider_1 = require("@smithy/property-provider");
const buffer_1 = require("buffer");
const http_1 = require("http");
function httpRequest(options) {
return new Promise((resolve, reject) => {
var _a;
const req = (0, http_1.request)({
method: "GET",
...options,
hostname: (_a = options.hostname) === null || _a === void 0 ? void 0 : _a.replace(/^\[(.+)\]$/, "$1"),
});
req.on("error", (err) => {
reject(Object.assign(new property_provider_1.ProviderError("Unable to connect to instance metadata service"), err));
req.destroy();
});
req.on("timeout", () => {
reject(new property_provider_1.ProviderError("TimeoutError from instance metadata service"));
req.destroy();
});
req.on("response", (res) => {
const { statusCode = 400 } = res;
if (statusCode < 200 || 300 <= statusCode) {
reject(Object.assign(new property_provider_1.ProviderError("Error response received from instance metadata service"), { statusCode }));
req.destroy();
}
const chunks = [];
res.on("data", (chunk) => {
chunks.push(chunk);
});
res.on("end", () => {
resolve(buffer_1.Buffer.concat(chunks));
req.destroy();
});
});
req.end();
});
}
exports.httpRequest = httpRequest;