diff options
| author | Dipanshu Rawat <144578298+Jaydeeprawat17@users.noreply.github.com> | 2025-06-24 02:06:55 +0530 |
|---|---|---|
| committer | Dipanshu Rawat <144578298+Jaydeeprawat17@users.noreply.github.com> | 2025-06-24 02:06:55 +0530 |
| commit | 57e42e2c4539949e93b71f1125e0c0eecb2fb5e8 (patch) | |
| tree | 13e6c908889905329d240b2ca8d45763798b1ce4 /apps/web/src/lib | |
| parent | fb9c560c5beed89660ad36c2e2249e12e8b7f78f (diff) | |
| download | opencut-57e42e2c4539949e93b71f1125e0c0eecb2fb5e8.tar.gz | |
ref: fetch api function
Diffstat (limited to 'apps/web/src/lib')
| -rw-r--r-- | apps/web/src/lib/fetchGhStars.ts | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/apps/web/src/lib/fetchGhStars.ts b/apps/web/src/lib/fetchGhStars.ts index de3e2e80..e0236840 100644 --- a/apps/web/src/lib/fetchGhStars.ts +++ b/apps/web/src/lib/fetchGhStars.ts @@ -1,20 +1,29 @@ -async function getStars(): Promise<string> { - const res = await fetch("https://api.github.com/repos/OpenCut-app/OpenCut", { - // Cache for 1 hour (3600 seconds) - next: { revalidate: 3600 }, - }); +export async function getStars(): Promise<string> { + try { + const res = await fetch( + "https://api.github.com/repos/OpenCut-app/OpenCut", + { + next: { revalidate: 3600 }, + } + ); - const data = await res.json(); - const count = data.stargazers_count; + if (!res.ok) { + throw new Error(`GitHub API error: ${res.status} ${res.statusText}`); + } + const data = await res.json(); + const count = data.stargazers_count; - if (count >= 1_000_000) - return (count / 1_000_000).toFixed(1).replace(/\.0$/, "") + "M"; - if (count >= 1_000) - return (count / 1_000).toFixed(1).replace(/\.0$/, "") + "k"; - return count.toString(); -} + if (typeof count !== "number") { + throw new Error("Invalid stargazers_count from GitHub API"); + } -export async function ghStars() { - const stars = await getStars(); - return stars; + if (count >= 1_000_000) + return (count / 1_000_000).toFixed(1).replace(/\.0$/, "") + "M"; + if (count >= 1_000) + return (count / 1_000).toFixed(1).replace(/\.0$/, "") + "k"; + return count.toString(); + } catch (error) { + console.error("Failed to fetch GitHub stars:", error); + return "1.5k"; + } } |
