mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 02:14:01 +00:00
13 lines
532 B
JavaScript
13 lines
532 B
JavaScript
/** Bound an upstream Retry-After delay (seconds or HTTP date). */
|
|
export function providerCooldownMs(response, now = Date.now()) {
|
|
const raw = response?.headers?.get('retry-after')?.trim();
|
|
const seconds = raw && /^\d+(?:\.\d+)?$/.test(raw) ? Number(raw) : NaN;
|
|
const deadline = raw && !Number.isFinite(seconds) ? Date.parse(raw) : NaN;
|
|
const delay = Number.isFinite(seconds)
|
|
? seconds * 1000
|
|
: Number.isFinite(deadline)
|
|
? deadline - now
|
|
: 60000;
|
|
return Math.min(30 * 60000, Math.max(5000, delay));
|
|
}
|