ui5plugin-parser
Version:
68 lines (67 loc) • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HTTPHandler = void 0;
const axios_1 = require("axios");
const https = require("https");
class HTTPHandler {
constructor(configHandler) {
this.configHandler = configHandler;
}
async get(uri, options = {}) {
let pResponse;
let data = {};
const rejectUnauthorized = this.configHandler.getRejectUnauthorized();
if (!rejectUnauthorized)
options.httpsAgent = new https.Agent({ rejectUnauthorized: !!rejectUnauthorized });
try {
if (HTTPHandler._requests[uri]) {
pResponse = HTTPHandler._requests[uri];
}
else {
pResponse = new axios_1.Axios(options).get(uri, {
validateStatus: status => {
return status >= 200 && status < 300;
}
});
HTTPHandler._requests[uri] = pResponse;
}
const response = await pResponse;
if (response.headers?.["content-type"]?.includes("application/json")) {
data = JSON.parse(response.data);
}
else {
data = response.data;
}
}
catch (error) {
const errorMessage = `Error occurred sending HTTP Request. Uri: "${uri}". Message: "${error.message}". Response data: "${error.response?.data}"`;
console.error(errorMessage);
throw new Error(errorMessage);
}
return data;
}
static async get(uri, options = {}) {
let data = {};
try {
const response = await new axios_1.Axios(options).get(uri, {
validateStatus: status => {
return status >= 200 && status < 300;
}
});
if (response.headers?.["content-type"]?.includes("application/json")) {
data = JSON.parse(response.data);
}
else {
data = response.data;
}
}
catch (error) {
const errorMessage = `Error occurred sending HTTP Request. Uri: "${uri}". Message: "${error.message}". Response data: "${error.response?.data}"`;
console.error(errorMessage);
throw new Error(errorMessage);
}
return data;
}
}
exports.HTTPHandler = HTTPHandler;
HTTPHandler._requests = {};