import { Buffer } from 'node:buffer' import { join, resolve } from 'pathe' import fs from 'fs-extra' import { ofetch } from 'ofetch' import { elkTeamMembers } from '../composables/about' const avatarsDir = resolve('./public/avatars/') const sizes = [60, 100] async function download(url: string, fileName: string) { if (fs.existsSync(fileName)) return console.log('downloading', fileName) try { const image = await ofetch(url, { responseType: 'arrayBuffer' }) await fs.writeFile(fileName, Buffer.from(image)) } catch (err) { console.error(err) } } async function fetchAvatars() { await fs.ensureDir(avatarsDir) await Promise.all(elkTeamMembers.reduce((acc, { github }) => { acc.push(...sizes.map(s => download(`https://github.com/${github}.png?size=${s}`, join(avatarsDir, `${github}-${s}x${s}.png`)))) return acc }, [] as Promise[])) } fetchAvatars()