summaryrefslogtreecommitdiffhomepage
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/stats.ts40
1 files changed, 9 insertions, 31 deletions
diff --git a/scripts/stats.ts b/scripts/stats.ts
index b30e57d91..2abe7e1ca 100755
--- a/scripts/stats.ts
+++ b/scripts/stats.ts
@@ -26,13 +26,9 @@ async function fetchNpmDownloads(packageName: string): Promise<number> {
// Use a range from 2020 to current year + 5 years to ensure it works forever
const currentYear = new Date().getFullYear()
const endYear = currentYear + 5
- const response = await fetch(
- `https://api.npmjs.org/downloads/range/2020-01-01:${endYear}-12-31/${packageName}`,
- )
+ const response = await fetch(`https://api.npmjs.org/downloads/range/2020-01-01:${endYear}-12-31/${packageName}`)
if (!response.ok) {
- console.warn(
- `Failed to fetch npm downloads for ${packageName}: ${response.status}`,
- )
+ console.warn(`Failed to fetch npm downloads for ${packageName}: ${response.status}`)
return 0
}
const data: NpmDownloadsRange = await response.json()
@@ -53,9 +49,7 @@ async function fetchReleases(): Promise<Release[]> {
const response = await fetch(url)
if (!response.ok) {
- throw new Error(
- `GitHub API error: ${response.status} ${response.statusText}`,
- )
+ throw new Error(`GitHub API error: ${response.status} ${response.statusText}`)
}
const batch: Release[] = await response.json()
@@ -115,11 +109,7 @@ async function save(githubTotal: number, npmDownloads: number) {
for (let i = lines.length - 1; i >= 0; i--) {
const line = lines[i].trim()
- if (
- line.startsWith("|") &&
- !line.includes("Date") &&
- !line.includes("---")
- ) {
+ if (line.startsWith("|") && !line.includes("Date") && !line.includes("---")) {
const match = line.match(
/\|\s*[\d-]+\s*\|\s*([\d,]+)\s*(?:\([^)]*\))?\s*\|\s*([\d,]+)\s*(?:\([^)]*\))?\s*\|\s*([\d,]+)\s*(?:\([^)]*\))?\s*\|/,
)
@@ -147,11 +137,7 @@ async function save(githubTotal: number, npmDownloads: number) {
? ` (${githubChange.toLocaleString()})`
: " (+0)"
const npmChangeStr =
- npmChange > 0
- ? ` (+${npmChange.toLocaleString()})`
- : npmChange < 0
- ? ` (${npmChange.toLocaleString()})`
- : " (+0)"
+ npmChange > 0 ? ` (+${npmChange.toLocaleString()})` : npmChange < 0 ? ` (${npmChange.toLocaleString()})` : " (+0)"
const totalChangeStr =
totalChange > 0
? ` (+${totalChange.toLocaleString()})`
@@ -182,9 +168,7 @@ const { total: githubTotal, stats } = calculate(releases)
console.log("Fetching npm all-time downloads for opencode-ai...\n")
const npmDownloads = await fetchNpmDownloads("opencode-ai")
-console.log(
- `Fetched npm all-time downloads: ${npmDownloads.toLocaleString()}\n`,
-)
+console.log(`Fetched npm all-time downloads: ${npmDownloads.toLocaleString()}\n`)
await save(githubTotal, npmDownloads)
@@ -202,24 +186,18 @@ 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`,
- )
+ 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(` └─ ${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(`GitHub Total: ${githubTotal.toLocaleString()} downloads across ${releases.length} releases`)
console.log(`npm Total: ${npmDownloads.toLocaleString()} downloads`)
console.log(`Combined Total: ${totalDownloads.toLocaleString()} downloads`)