@eclass/cev-providers
Version:
Integración Proveedores CEV
54 lines • 6.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchEndpoint = void 0;
const url_1 = require("url");
const util = require("util");
const parser = require("fast-xml-parser");
const fetch = require("node-fetch");
const abort_controller_1 = require("abort-controller");
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
const fetchEndpoint = async (url,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
params, debug = false) => {
const timeout = 8000;
const endPointUrl = new url_1.URL(url);
Object.keys(params).forEach(key => endPointUrl.searchParams.append(key, params[`${key}`]));
const controller = new abort_controller_1.default();
const id = setTimeout(() => controller.abort(), timeout);
const response = await fetch(endPointUrl, {
signal: controller.signal
});
if (!response || !response.ok) {
throw new Error(`Network Error on fetch ${url}`);
}
const responseText = await response.text();
if (debug) {
// eslint-disable-next-line no-console
console.log({ responseText });
}
const options = {
attributeNamePrefix: '@_',
ignoreAttributes: false,
ignoreNameSpace: false
};
const parsed = parser.parse(responseText, options);
if (debug) {
// eslint-disable-next-line no-console
console.log(util.inspect(parsed, false, null, true /* enable colors */));
}
if (!parsed.results) {
throw new Error(`Fetch error on ${url} when tried action ${params === null || params === void 0 ? void 0 : params.action}`);
}
clearTimeout(id);
return {
response: parsed,
log: {
headers: response.headers,
status: response.status,
statusText: response.statusText,
url: response.url
}
};
};
exports.fetchEndpoint = fetchEndpoint;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hFbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9BZG9iZUNvbm5lY3QvbGliL2ZldGNoRW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXlCO0FBQ3pCLDZCQUE2QjtBQUc3QiwwQ0FBMEM7QUFDMUMsb0NBQW9DO0FBQ3BDLHVEQUE4QztBQUU5Qyw2RUFBNkU7QUFDdEUsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUNoQyxHQUFXO0FBQ1gsOERBQThEO0FBQzlELE1BQVcsRUFDWCxLQUFLLEdBQUcsS0FBSyxFQUNXLEVBQUU7SUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ2hDLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQ3ZELENBQUE7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUFlLEVBQUUsQ0FBQTtJQUN4QyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3hELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFdBQVcsRUFBRTtRQUN4QyxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07S0FDMUIsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUMsQ0FBQTtLQUNqRDtJQUNELE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzFDLElBQUksS0FBSyxFQUFFO1FBQ1Qsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0tBQzlCO0lBQ0QsTUFBTSxPQUFPLEdBQUc7UUFDZCxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLGdCQUFnQixFQUFFLEtBQUs7UUFDdkIsZUFBZSxFQUFFLEtBQUs7S0FDdkIsQ0FBQTtJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2xELElBQUksS0FBSyxFQUFFO1FBQ1Qsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFBO0tBQ3pFO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxzQkFBc0IsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7S0FDN0U7SUFFRCxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDaEIsT0FBTztRQUNMLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLEdBQUcsRUFBRTtZQUNILE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07WUFDdkIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztTQUNsQjtLQUNGLENBQUE7QUFDSCxDQUFDLENBQUE7QUFqRFksUUFBQSxhQUFhLGlCQWlEekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVUkwgfSBmcm9tICd1cmwnXG5pbXBvcnQgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKVxuaW1wb3J0IHsgRmV0Y2hFbmRwb2ludCB9IGZyb20gJy4uLy4uLydcblxuaW1wb3J0IHBhcnNlciA9IHJlcXVpcmUoJ2Zhc3QteG1sLXBhcnNlcicpXG5pbXBvcnQgZmV0Y2ggPSByZXF1aXJlKCdub2RlLWZldGNoJylcbmltcG9ydCBBYm9ydENvbnRyb2xsZXIgZnJvbSAnYWJvcnQtY29udHJvbGxlcidcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbmV4cG9ydCBjb25zdCBmZXRjaEVuZHBvaW50ID0gYXN5bmMgKFxuICB1cmw6IHN0cmluZyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcGFyYW1zOiBhbnksXG4gIGRlYnVnID0gZmFsc2Vcbik6IFByb21pc2U8RmV0Y2hFbmRwb2ludD4gPT4ge1xuICBjb25zdCB0aW1lb3V0ID0gODAwMFxuICBjb25zdCBlbmRQb2ludFVybCA9IG5ldyBVUkwodXJsKVxuICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+XG4gICAgZW5kUG9pbnRVcmwuc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHBhcmFtc1tgJHtrZXl9YF0pXG4gIClcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KVxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGVuZFBvaW50VXJsLCB7XG4gICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbFxuICB9KVxuICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgTmV0d29yayBFcnJvciBvbiBmZXRjaCAke3VybH1gKVxuICB9XG4gIGNvbnN0IHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICBpZiAoZGVidWcpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUubG9nKHsgcmVzcG9uc2VUZXh0IH0pXG4gIH1cbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBhdHRyaWJ1dGVOYW1lUHJlZml4OiAnQF8nLFxuICAgIGlnbm9yZUF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgIGlnbm9yZU5hbWVTcGFjZTogZmFsc2VcbiAgfVxuICBjb25zdCBwYXJzZWQgPSBwYXJzZXIucGFyc2UocmVzcG9uc2VUZXh0LCBvcHRpb25zKVxuICBpZiAoZGVidWcpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUubG9nKHV0aWwuaW5zcGVjdChwYXJzZWQsIGZhbHNlLCBudWxsLCB0cnVlIC8qIGVuYWJsZSBjb2xvcnMgKi8pKVxuICB9XG5cbiAgaWYgKCFwYXJzZWQucmVzdWx0cykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmV0Y2ggZXJyb3Igb24gJHt1cmx9IHdoZW4gdHJpZWQgYWN0aW9uICR7cGFyYW1zPy5hY3Rpb259YClcbiAgfVxuXG4gIGNsZWFyVGltZW91dChpZClcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZTogcGFyc2VkLFxuICAgIGxvZzoge1xuICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycyxcbiAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgIHVybDogcmVzcG9uc2UudXJsXG4gICAgfVxuICB9XG59XG4iXX0=