decord/source/879_parseRetryAfterHeader.js
2026-07-29 08:29:29 +00:00

117 lines
3.4 KiB
JavaScript

// Module ID: 879
// Function ID: 880
// Name: parseRetryAfterHeader
// Dependencies: [32, 831]
// Exports: disabledUntil, isRateLimited, updateRateLimits
// Module 879 (parseRetryAfterHeader)
import _slicedToArray from "_slicedToArray";
function parseRetryAfterHeader(arg0) {
let safeDateNowResult = arg1;
if (arg1 === undefined) {
safeDateNowResult = require(831) /* safeDateNow */.safeDateNow();
const obj = require(831) /* safeDateNow */;
}
const parsed = parseInt("" + arg0, 10);
if (isNaN(parsed)) {
const _Date = Date;
const _HermesInternal = HermesInternal;
const parsed1 = Date.parse("" + arg0);
const _isNaN = isNaN;
let num2 = 60000;
if (!isNaN(parsed1)) {
num2 = parsed1 - safeDateNowResult;
}
return num2;
} else {
return 1000 * parsed;
}
}
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
export const DEFAULT_RETRY_AFTER = 60000;
export const disabledUntil = function disabledUntil(all) {
return all[arg1] || all.all || 0;
};
export const isRateLimited = function isRateLimited(all) {
let safeDateNowResult = arg2;
if (arg2 === undefined) {
safeDateNowResult = require(831) /* safeDateNow */.safeDateNow();
const obj = require(831) /* safeDateNow */;
}
return (all[arg1] || all.all || 0) > safeDateNowResult;
};
export { parseRetryAfterHeader };
export const updateRateLimits = function updateRateLimits(arg0, headers) {
headers = headers.headers;
let safeDateNowResult = arg2;
if (arg2 === undefined) {
let obj = require(831) /* safeDateNow */;
safeDateNowResult = obj.safeDateNow();
}
obj = {};
const merged = Object.assign(arg0);
let prop;
if (headers != null) {
prop = headers["x-sentry-rate-limits"];
}
if (headers != null) {
retry_after = headers["retry-after"];
}
if (prop) {
const parts = prop.trim().split(",");
const iter = parts[Symbol.iterator]();
const str = prop.trim();
while (iter !== undefined) {
let tmp12 = _slicedToArray;
let tmp13 = _slicedToArray(str7.split(":", 5), 5);
let str8 = tmp13[1];
let str9 = tmp13[4];
let _parseInt = parseInt;
let parsed = parseInt(tmp13[0], 10);
let tmp15 = parsed;
let _isNaN = isNaN;
let num6 = 60;
if (!isNaN(parsed)) {
num6 = parsed;
}
let result = 1000 * num6;
let tmp17 = str8;
if (str8) {
let tmp19 = str8;
let parts1 = str8.split(";");
let tmp21 = parts1;
let tmp22 = parts1;
for (const item10070 of parts1) {
let tmp24 = "metric_bucket" === item10070;
let tmp23 = item10070;
if (tmp24) {
tmp24 = str9;
}
if (tmp24) {
let tmp25 = str9;
let parts2 = str9.split(";");
tmp24 = !parts2.includes("custom");
}
if (!tmp24) {
let tmp26 = item10070;
let tmp27 = result;
obj[tmp23] = safeDateNowResult + result;
}
continue;
}
} else {
let tmp18 = result;
obj.all = safeDateNowResult + result;
}
continue;
}
str7 = iter.next();
} else if (retry_after) {
obj.all = safeDateNowResult + parseRetryAfterHeader(retry_after, safeDateNowResult);
} else if (429 === headers.statusCode) {
obj.all = safeDateNowResult + 60000;
}
return obj;
};