decord/source/7301_parseRetryAfterHeader.js
2026-07-24 07:16:23 +00:00

129 lines
3.6 KiB
JavaScript

// Module ID: 7301
// Function ID: 58939
// Name: parseRetryAfterHeader
// Dependencies: [57]
// Exports: isRateLimited, updateRateLimits
// Module 7301 (parseRetryAfterHeader)
import _slicedToArray from "_slicedToArray";
function parseRetryAfterHeader(arg0) {
if (arguments.length > 1) {
if (undefined !== arguments[1]) {
let timestamp = arguments[1];
}
const _parseInt = parseInt;
const _HermesInternal = HermesInternal;
const parsed = parseInt("" + arg0, 10);
const _isNaN = isNaN;
if (isNaN(parsed)) {
const _Date = Date;
const _HermesInternal2 = HermesInternal;
const parsed1 = Date.parse("" + arg0);
const _isNaN2 = isNaN;
let num3 = 60000;
if (!isNaN(parsed1)) {
num3 = parsed1 - timestamp;
}
return num3;
} else {
return 1000 * parsed;
}
}
timestamp = Date.now();
}
function disabledUntil(all) {
return all[arg1] || all.all || 0;
}
export const DEFAULT_RETRY_AFTER = 60000;
export { disabledUntil };
export const isRateLimited = function isRateLimited(arg0, arg1) {
if (arguments.length > 2) {
if (undefined !== arguments[2]) {
let timestamp = arguments[2];
}
return disabledUntil(arg0, arg1) > timestamp;
}
timestamp = Date.now();
};
export { parseRetryAfterHeader };
export const updateRateLimits = function updateRateLimits(arg0, headers) {
headers = headers.headers;
if (arguments.length > 2) {
if (undefined !== arguments[2]) {
let timestamp = arguments[2];
}
const _Object = Object;
const merged = Object.assign({}, arg0);
let str = headers;
if (headers) {
str = headers["x-sentry-rate-limits"];
}
retry_after = headers;
if (headers) {
retry_after = headers["retry-after"];
}
if (str) {
const parts = str.trim().split(",");
const iter = parts[Symbol.iterator]();
const str2 = str.trim();
while (iter !== undefined) {
let tmp32 = _slicedToArray;
let tmp33 = _slicedToArray(str8.split(":", 5), 5);
let str9 = tmp33[1];
let str10 = tmp33[4];
let _parseInt = parseInt;
let parsed = parseInt(tmp33[0], 10);
let tmp35 = parsed;
let _isNaN = isNaN;
let num9 = 60;
if (!isNaN(parsed)) {
num9 = parsed;
}
let result = 1000 * num9;
let tmp14 = str9;
if (str9) {
let tmp18 = str9;
let parts1 = str9.split(";");
let tmp20 = parts1;
for (const item10066 of parts1) {
let tmp22 = "metric_bucket" === item10066;
let tmp23 = tmp22;
let tmp21 = item10066;
if (tmp22) {
tmp23 = str10;
}
let tmp24 = tmp23;
if (tmp23) {
let tmp25 = str10;
let parts2 = str10.split(";");
tmp24 = !parts2.includes("custom");
}
if (!tmp24) {
let tmp26 = merged;
let tmp27 = item10066;
let tmp28 = timestamp;
let tmp29 = result;
merged[tmp21] = tmp3 + result;
}
continue;
}
} else {
let tmp15 = merged;
let tmp16 = timestamp;
let tmp17 = result;
merged.all = tmp3 + result;
}
continue;
}
str8 = iter.next();
} else if (retry_after) {
merged.all = tmp3 + parseRetryAfterHeader(retry_after, tmp3);
} else if (429 === tmp) {
merged.all = tmp3 + 60000;
}
return merged;
}
timestamp = Date.now();
};