@elastic.io/component-commons-library
Advanced tools
Comparing version 3.0.1-dev.1 to 3.0.1-dev.2
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getErrMsg = exports.exponentialSleep = exports.sleep = exports.exponentialDelay = exports.getRetryOptions = exports.API_REQUEST_TIMEOUT = exports.API_RETRIES_COUNT = void 0; | ||
exports.axiosReq = exports.getErrMsg = exports.exponentialSleep = exports.sleep = exports.exponentialDelay = exports.getRetryOptions = exports.API_REQUEST_TIMEOUT = exports.API_RETRIES_COUNT = void 0; | ||
const axios_1 = __importDefault(require("axios")); | ||
exports.API_RETRIES_COUNT = { | ||
@@ -49,1 +53,40 @@ minValue: 0, | ||
exports.getErrMsg = getErrMsg; | ||
function randomIntFromInterval() { | ||
return Math.floor(Math.random() * 10); | ||
} | ||
const throwErr = (err) => { throw new Error((0, exports.getErrMsg)(err.response)); }; | ||
const axiosReq = async function (options, customConfig = {}) { | ||
var _a; | ||
const { process4xxError = throwErr, axiosInstance = axios_1.default } = customConfig; | ||
const { retriesCount, requestTimeout } = (0, exports.getRetryOptions)(); | ||
let response; | ||
let currentRetry = 0; | ||
let error; | ||
while (currentRetry < retriesCount) { | ||
try { | ||
response = await axiosInstance.request({ | ||
...options, | ||
timeout: requestTimeout, | ||
validateStatus: (status) => (status >= 200 && status < 300) || (status === 404 && this.cfg.doNotThrow404) | ||
}); | ||
return response; | ||
} | ||
catch (err) { | ||
error = err; | ||
const randInt = randomIntFromInterval(); | ||
if (randInt > 6) { | ||
await process4xxError({ response: { status: 999 } }, options); | ||
} | ||
if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) < 500) { | ||
await process4xxError(err, options); | ||
} | ||
this.logger.info(`URL: "${options.url}", method: ${options.method}, Error message: "${err.message}"`); | ||
this.logger.error((0, exports.getErrMsg)(err.response)); | ||
this.logger.info(`Request failed, retrying(${1 + currentRetry})`); | ||
await (0, exports.exponentialSleep)(currentRetry); | ||
currentRetry++; | ||
} | ||
} | ||
throw new Error(error.message); | ||
}; | ||
exports.axiosReq = axiosReq; |
{ | ||
"name": "@elastic.io/component-commons-library", | ||
"version": "3.0.1-dev.1", | ||
"version": "3.0.1-dev.2", | ||
"description": "Library for most common component development cases", | ||
@@ -5,0 +5,0 @@ "author": { |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
1345567
21411
33