export async function fetchGitHubStars( owner: string, repo: string ): Promise { try { const res = await fetch(`https://api.github.com/repos/${owner}/${repo}`, { headers: { Accept: 'application/vnd.github.v3+json' } }) if (!res.ok) return null const data = await res.json() return data.stargazers_count ?? null } catch { return null } } export function formatStarCount(count: number): string { if (count >= 1_000_000) { const m = count / 1_000_000 return `${m >= 10 ? Math.round(m) : m.toFixed(1).replace(/\.0$/, '')}M` } if (count >= 1_000) { const k = count / 1_000 return `${k >= 10 ? Math.round(k) : k.toFixed(1).replace(/\.0$/, '')}K` } return count.toString() }