INNER CODE UNIT · JavaScript

isIco

ImranR98/apps.obtainium.imranr.dev · scripts/validate_icons.js:34

function isIco(buffer, contentType) {
  const type = (contentType || '').toLowerCase()
  if (type.includes('image/x-icon') || type.includes('image/vnd.microsoft.icon')) return true
  return buffer.length >= 4 && buffer[0] === 0 && buffer[1] === 0 && buffer[2] === 1 && buffer[3] === 0
}

async function fetchIcon(url) {
  let lastError
  for (let attempt = 1; attempt <= ATTEMPTS; attempt++) {
    const controller = new AbortController()
    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 =

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…