import { HTTP_TIMEOUT } from "../constants.js";
import { getRandomUserAgent, getAcceptLanguageHeader } from "./user-agent.js";
export function toInt(v: string | undefined, def: number): number {
const n = Number(v);
return Number.isFinite(n) && n > 0 ? Math.floor(n) : def;
}
export function toMs(v: string | undefined, def: number): number {
const n = Number(v);
return Number.isFinite(n) && n > 0 ? n : def;
}
export async function fetchWithTimeout(
input: RequestInfo | URL,
init: RequestInit = {},
timeoutMs = HTTP_TIMEOUT
): Promise<Response> {
const controller = new AbortController();
const t = setTimeout(() => controller.abort(), timeoutMs);
try {
return await fetch(input, { ...init, signal: controller.signal });
} finally {
clearTimeout(t);
}
}