summaryrefslogtreecommitdiff
path: root/apps/web/src/lib
diff options
context:
space:
mode:
authorDipanshu Rawat <144578298+Jaydeeprawat17@users.noreply.github.com>2025-06-24 01:40:46 +0530
committerDipanshu Rawat <144578298+Jaydeeprawat17@users.noreply.github.com>2025-06-24 01:40:46 +0530
commitfb9c560c5beed89660ad36c2e2249e12e8b7f78f (patch)
tree99f1a01e321e76127129ac123a6601fab984f665 /apps/web/src/lib
parenta6a520db70ef639e066d1012fa2ecf7e26c53049 (diff)
downloadopencut-fb9c560c5beed89660ad36c2e2249e12e8b7f78f.tar.gz
add: github stars count by API
Diffstat (limited to 'apps/web/src/lib')
-rw-r--r--apps/web/src/lib/fetchGhStars.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/apps/web/src/lib/fetchGhStars.ts b/apps/web/src/lib/fetchGhStars.ts
new file mode 100644
index 00000000..de3e2e80
--- /dev/null
+++ b/apps/web/src/lib/fetchGhStars.ts
@@ -0,0 +1,20 @@
+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 },
+ });
+
+ 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();
+}
+
+export async function ghStars() {
+ const stars = await getStars();
+ return stars;
+}