GenerAI / worldmonitor /pro-test /src /services /checkout-rate-limit.ts
amogaddy's picture
Fix build: ripristinate blog-site/tests/e2e/pro-test/convex (referenziate dagli script di build) (part 3)
ec8acdf verified
Raw
History Blame Contribute Delete
856 Bytes
export const DEFAULT_CHECKOUT_RETRY_AFTER_SECONDS = 10;
export const MAX_CHECKOUT_RETRY_AFTER_SECONDS = 9_999;
/**
* Mirrors the edge gateway's closed Retry-After contract: a numeric 1-4 digit
* delay, with the same safe fallback when an intermediary strips or mangles
* the header.
*/
export function parseCheckoutRetryAfterSeconds(
value: string | null | undefined,
): number {
if (!value || !/^\d{1,4}$/.test(value)) {
return DEFAULT_CHECKOUT_RETRY_AFTER_SECONDS;
}
return Math.min(Number(value), MAX_CHECKOUT_RETRY_AFTER_SECONDS);
}
export function checkoutRetryAtMs(
nowMs: number,
retryAfterSeconds: number,
): number {
return nowMs + retryAfterSeconds * 1_000;
}
export function checkoutRetryRemainingSeconds(
nowMs: number,
retryAtMs: number,
): number {
return Math.max(0, Math.ceil((retryAtMs - nowMs) / 1_000));
}