diff options
Diffstat (limited to 'script')
| -rwxr-xr-x | script/stats.ts | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/script/stats.ts b/script/stats.ts index bce211855..d5f6c103f 100755 --- a/script/stats.ts +++ b/script/stats.ts @@ -1,5 +1,33 @@ #!/usr/bin/env bun +async function sendToPostHog(event: string, properties: Record<string, any>) { + const key = process.env["POSTHOG_KEY"] + + if (!key) { + console.warn("POSTHOG_API_KEY not set, skipping PostHog event") + return + } + + const response = await fetch("https://us.i.posthog.com/i/v0/e/", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + distinct_id: "download", + api_key: key, + event, + properties: { + ...properties, + }, + }), + }).catch(() => null) + + if (response && !response.ok) { + console.warn(`PostHog API error: ${response.status}`) + } +} + interface Asset { name: string download_count: number @@ -173,6 +201,16 @@ console.log(`Fetched npm all-time downloads: ${npmDownloads.toLocaleString()}\n` await save(githubTotal, npmDownloads) +await sendToPostHog("download", { + count: githubTotal, + source: "github", +}) + +await sendToPostHog("download", { + count: npmDownloads, + source: "npm", +}) + const totalDownloads = githubTotal + npmDownloads console.log("=".repeat(60)) @@ -181,23 +219,6 @@ console.log(` GitHub: ${githubTotal.toLocaleString()}`) console.log(` npm: ${npmDownloads.toLocaleString()}`) console.log("=".repeat(60)) -console.log("\nDownloads by release:") -console.log("-".repeat(60)) - -stats - .sort((a, b) => b.downloads - a.downloads) - .forEach((release) => { - console.log(`${release.tag.padEnd(15)} ${release.downloads.toLocaleString().padStart(10)} downloads`) - - if (release.assets.length > 1) { - release.assets - .sort((a, b) => b.downloads - a.downloads) - .forEach((asset) => { - console.log(` └─ ${asset.name.padEnd(25)} ${asset.downloads.toLocaleString().padStart(8)}`) - }) - } - }) - console.log("-".repeat(60)) console.log(`GitHub Total: ${githubTotal.toLocaleString()} downloads across ${releases.length} releases`) console.log(`npm Total: ${npmDownloads.toLocaleString()} downloads`) |
