@vtex/api
Version:
VTEX I/O API client
36 lines (35 loc) • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.exponentialDelay = exports.isNetworkOrIdempotentRequestError = exports.isAbortedOrNetworkErrorOrRouterTimeout = exports.isNetworkErrorOrRouterTimeout = exports.TIMEOUT_CODE = void 0;
const axios_retry_1 = require("axios-retry");
exports.TIMEOUT_CODE = 'ProxyTimeout';
const printLabel = (e, message) => {
if (!e || !e.config || !e.config.label) {
return;
}
console.warn(e.config.label, message);
};
const isNetworkErrorOrRouterTimeout = (e) => {
if ((0, axios_retry_1.isNetworkOrIdempotentRequestError)(e)) {
printLabel(e, 'Retry from network error');
return true;
}
if (e && (0, axios_retry_1.isSafeRequestError)(e) && e.response && e.response.data && e.response.data.code === exports.TIMEOUT_CODE) {
printLabel(e, 'Retry from timeout');
return true;
}
return false;
};
exports.isNetworkErrorOrRouterTimeout = isNetworkErrorOrRouterTimeout;
// Retry on timeout from our end
const isAbortedOrNetworkErrorOrRouterTimeout = (e) => {
if (e && e.code === 'ECONNABORTED') {
printLabel(e, 'Retry from abort');
return true;
}
return (0, exports.isNetworkErrorOrRouterTimeout)(e);
};
exports.isAbortedOrNetworkErrorOrRouterTimeout = isAbortedOrNetworkErrorOrRouterTimeout;
var axios_retry_2 = require("axios-retry");
Object.defineProperty(exports, "isNetworkOrIdempotentRequestError", { enumerable: true, get: function () { return axios_retry_2.isNetworkOrIdempotentRequestError; } });
Object.defineProperty(exports, "exponentialDelay", { enumerable: true, get: function () { return axios_retry_2.exponentialDelay; } });
;