summaryrefslogtreecommitdiff
path: root/apps/web/src/lib
diff options
context:
space:
mode:
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;
+}