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 =