export async function load_api(url: string): Promise<{ data: T | null; error: Error | null; }> { let data: T | null = null; let error: Error | null = null; try { const res = await fetch(url); if (!res.ok) throw new Error(`Failed to fetch: ${res.status} ${res.statusText}`); data = await res.json(); } catch (err) { error = err instanceof Error ? err : new Error('Unknown error'); } return { data, error, }; } export async function getCommitCount(repo: string): Promise<{ count: Number | null; error: Error | null; }> { let error = null; let pageCount = null; try { const res = await fetch(`https://git.etheryo.fr//api/v1/repos/${repo}/commits?limit=1&page=1`); if (!res.ok) throw new Error(`Failed to fetch: ${res.status} ${res.statusText}`); else pageCount = res.headers.get('X-Pagecount'); } catch (err) { error = err instanceof Error ? err : new Error('Unknown error'); } return { count: pageCount ? parseInt(pageCount) : null, error: error, }; }