/* 探测 24 坐标系图标库 sprite 可达性 */ const https = require('https'); function fetch(url) { return new Promise((resolve, reject) => { const req = https.get(url, { timeout: 15000 }, (res) => { if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) { res.resume(); return resolve(fetch(res.headers.location.startsWith('/') ? 'https://unpkg.com' + res.headers.location : res.headers.location)); } if (res.statusCode !== 200) { res.resume(); return reject(new Error(res.statusCode + ' ' + url)); } const chunks = []; res.on('data', c => chunks.push(c)); res.on('end', () => resolve(Buffer.concat(chunks).toString('utf8'))); }); req.on('error', reject); req.on('timeout', () => req.destroy(new Error('timeout'))); }); } (async () => { const urls = { remix: 'https://unpkg.com/remixicon@4.5.0/symbols/remixicon.symbol.svg', phosphor: 'https://unpkg.com/phosphor-icons/core/assets/Phosphor.svg', bootstrap: 'https://unpkg.com/bootstrap-icons@1.11.3/bootstrap-icons.svg', heroicons_solid: 'https://unpkg.com/heroicons@2.1.5/24/solid.svg' }; for (const [k, u] of Object.entries(urls)) { try { const s = await fetch(u); const syms = (s.match(/