(url)
| 17 | const ctx = canvas.getContext('2d'); |
| 18 | |
| 19 | async function loadAvatar(url) { |
| 20 | try { |
| 21 | const res = await fetch(url); |
| 22 | if (!res.ok) throw new Error(`HTTP ${res.status}`); |
| 23 | |
| 24 | const buffer = Buffer.from(await res.arrayBuffer()); |
| 25 | return await loadImage(buffer); |
| 26 | } catch (err) { |
| 27 | return null; |
| 28 | } |
| 29 | } |
| 30 | |
| 31 | (async () => { |
| 32 | for (let i = 0; i < contributors.length; i++) { |