@talentsoft-opensource/widget-display-tool
Version:
Widget Simulator
33 lines (32 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const factory_1 = require("../securityModes/factory");
const fetch = require("node-fetch");
async function formatResponse(response) {
const headers = {};
response.headers.forEach((v, k) => {
headers[k] = v;
});
return {
status: response.status,
headers: headers,
body: await response.arrayBuffer()
};
}
async function downloadExternalResource(options, secretKey, login, securityMode) {
if (options.headers && options.headers.hasOwnProperty("host")) {
delete options.headers["host"];
}
const securityModeImplementation = factory_1.getSecurityMode(securityMode);
const securityHeaders = securityModeImplementation.getSecurityHeaderParams(secretKey, login, new Date());
const response = await fetch(options.url, {
headers: {
...options.headers,
...securityHeaders
},
method: options.verb,
body: options.verb == "GET" ? undefined : options.body
});
return await formatResponse(response);
}
exports.downloadExternalResource = downloadExternalResource;