11#!/usr/bin/env bun
22
3+ async function sendToPostHog ( event : string , properties : Record < string , any > ) {
4+ const key = process . env [ "POSTHOG_KEY" ]
5+
6+ if ( ! key ) {
7+ console . warn ( "POSTHOG_API_KEY not set, skipping PostHog event" )
8+ return
9+ }
10+
11+ const response = await fetch ( "https://us.i.posthog.com/i/v0/e/" , {
12+ method : "POST" ,
13+ headers : {
14+ "Content-Type" : "application/json" ,
15+ } ,
16+ body : JSON . stringify ( {
17+ distinct_id : "download" ,
18+ api_key : key ,
19+ event,
20+ properties : {
21+ ...properties ,
22+ } ,
23+ } ) ,
24+ } ) . catch ( ( ) => null )
25+
26+ if ( response && ! response . ok ) {
27+ console . warn ( `PostHog API error: ${ response . status } ` )
28+ }
29+ }
30+
331interface Asset {
432 name : string
533 download_count : number
@@ -173,6 +201,16 @@ console.log(`Fetched npm all-time downloads: ${npmDownloads.toLocaleString()}\n`
173201
174202await save ( githubTotal , npmDownloads )
175203
204+ await sendToPostHog ( "download" , {
205+ count : githubTotal ,
206+ source : "github" ,
207+ } )
208+
209+ await sendToPostHog ( "download" , {
210+ count : npmDownloads ,
211+ source : "npm" ,
212+ } )
213+
176214const totalDownloads = githubTotal + npmDownloads
177215
178216console . log ( "=" . repeat ( 60 ) )
@@ -181,23 +219,6 @@ console.log(` GitHub: ${githubTotal.toLocaleString()}`)
181219console . log ( ` npm: ${ npmDownloads . toLocaleString ( ) } ` )
182220console . log ( "=" . repeat ( 60 ) )
183221
184- console . log ( "\nDownloads by release:" )
185- console . log ( "-" . repeat ( 60 ) )
186-
187- stats
188- . sort ( ( a , b ) => b . downloads - a . downloads )
189- . forEach ( ( release ) => {
190- console . log ( `${ release . tag . padEnd ( 15 ) } ${ release . downloads . toLocaleString ( ) . padStart ( 10 ) } downloads` )
191-
192- if ( release . assets . length > 1 ) {
193- release . assets
194- . sort ( ( a , b ) => b . downloads - a . downloads )
195- . forEach ( ( asset ) => {
196- console . log ( ` └─ ${ asset . name . padEnd ( 25 ) } ${ asset . downloads . toLocaleString ( ) . padStart ( 8 ) } ` )
197- } )
198- }
199- } )
200-
201222console . log ( "-" . repeat ( 60 ) )
202223console . log ( `GitHub Total: ${ githubTotal . toLocaleString ( ) } downloads across ${ releases . length } releases` )
203224console . log ( `npm Total: ${ npmDownloads . toLocaleString ( ) } downloads` )
0 commit comments