INNER CODE UNIT · JavaScript
timeout
ImranR98/apps.obtainium.imranr.dev · scripts/validate_icons.js:44
const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS)
try {
const response = await fetch(url, {
signal: controller.signal,
headers: { 'User-Agent': USER_AGENT, 'Accept': 'image/*' }
})
if (!response.ok) {
const inconclusive =
response.status === 403 || response.status === 408 || response.status === 429 || response.status >= 500
if (inconclusive && attempt < ATTEMPTS) {
lastError = new Error(`HTTP ${response.status}`)
await new Promise(resolve => setTimeout(resolve, 500 * attempt))
continue
}
return { ok: false, definitive: !inconclusive, reason: `HTTP ${response.status}` }
}
const buffer = Buffer.from(await response.arrayBuffer())
if (isIco(buffer, response.headers.get('content-type'))) {