OpChan/src/lib/utils/urlLoads.ts

20 lines
521 B
TypeScript
Raw Normal View History

/**
* Utility to check if a URL loads successfully within a timeout
*/
export async function urlLoads(url: string, timeoutMs: number = 5000): Promise<boolean> {
try {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
const response = await fetch(url, {
method: 'HEAD',
signal: controller.signal,
cache: 'no-cache'
});
clearTimeout(timeoutId);
return response.ok;
} catch (error) {
return false;
}
}