From 4a15b40e2f339437b3f9e002cd770bf6cb9f395c Mon Sep 17 00:00:00 2001 From: Alexander Karan Date: Sat, 24 Jan 2026 08:31:07 +0800 Subject: [PATCH] Graph now in the table --- .../docs/src/components/DependencyStats.astro | 50 ++++--------------- packages/docs/src/content/config.ts | 2 +- .../src/content/stats/starter-next-js.json | 2 +- .../docs/src/content/stats/starter-nuxt.json | 2 +- .../content/stats/starter-react-router.json | 2 +- .../src/content/stats/starter-sveltekit.json | 2 +- .../stats/starter-tanstack-start-react.json | 2 +- packages/stats-generator/src/create-stats.ts | 8 ++- packages/stats-generator/src/save-stats.ts | 9 ++-- packages/stats-generator/src/types.ts | 3 ++ 10 files changed, 31 insertions(+), 51 deletions(-) diff --git a/packages/docs/src/components/DependencyStats.astro b/packages/docs/src/components/DependencyStats.astro index 4de7d2c..3103942 100644 --- a/packages/docs/src/components/DependencyStats.astro +++ b/packages/docs/src/components/DependencyStats.astro @@ -35,6 +35,7 @@ const stats = statsEntries.map((entry) => entry.data) Framework Prod Deps Dev Deps + Graph @@ -44,37 +45,21 @@ const stats = statsEntries.map((entry) => entry.data) {framework.name} {framework.prodDependencies} {framework.devDependencies} - - )) - } - - - -
-

Details

- + + + )) + } + +
@@ -181,21 +166,6 @@ const stats = statsEntries.map((entry) => entry.data) margin-bottom: 2em; } - .details-section { - margin-bottom: 2em; - } - - .framework-links { - list-style: none; - padding: 0; - margin: 0; - } - - .framework-links li { - padding: 8px 0; - color: #213547; - } - .coming-soon { color: #6b7280; font-style: italic; diff --git a/packages/docs/src/content/config.ts b/packages/docs/src/content/config.ts index ea386c9..fef75e7 100644 --- a/packages/docs/src/content/config.ts +++ b/packages/docs/src/content/config.ts @@ -7,7 +7,7 @@ const statsCollection = defineCollection({ type: z.string(), prodDependencies: z.number(), devDependencies: z.number(), - npmGraphUrl: z.string().url().optional(), + package: z.string(), installTimeMs: z.number(), coldBuildTimeMs: z.number(), warmBuildTimeMs: z.number(), diff --git a/packages/docs/src/content/stats/starter-next-js.json b/packages/docs/src/content/stats/starter-next-js.json index ff47f94..faa61f5 100644 --- a/packages/docs/src/content/stats/starter-next-js.json +++ b/packages/docs/src/content/stats/starter-next-js.json @@ -3,7 +3,7 @@ "type": "starter-kit", "prodDependencies": 3, "devDependencies": 6, - "npmGraphUrl": "https://npmgraph.js.org/?q=https://github.com/e18e/framework-tracker/blob/main/packages/starter-next-js/package.json", + "package": "starter-next-js", "installTimeMs": 7307, "coldBuildTimeMs": 8293, "warmBuildTimeMs": 7593, diff --git a/packages/docs/src/content/stats/starter-nuxt.json b/packages/docs/src/content/stats/starter-nuxt.json index 55e531d..9c0c08e 100644 --- a/packages/docs/src/content/stats/starter-nuxt.json +++ b/packages/docs/src/content/stats/starter-nuxt.json @@ -3,7 +3,7 @@ "type": "starter-kit", "prodDependencies": 3, "devDependencies": 2, - "npmGraphUrl": "https://npmgraph.js.org/?q=https://github.com/e18e/framework-tracker/blob/main/packages/starter-nuxt/package.json", + "package": "starter-nuxt", "installTimeMs": 7369, "coldBuildTimeMs": 6721, "warmBuildTimeMs": 6627, diff --git a/packages/docs/src/content/stats/starter-react-router.json b/packages/docs/src/content/stats/starter-react-router.json index 62a1f12..4075fed 100644 --- a/packages/docs/src/content/stats/starter-react-router.json +++ b/packages/docs/src/content/stats/starter-react-router.json @@ -3,7 +3,7 @@ "type": "starter-kit", "prodDependencies": 6, "devDependencies": 8, - "npmGraphUrl": "https://npmgraph.js.org/?q=https://github.com/e18e/framework-tracker/blob/main/packages/starter-react-router/package.json", + "package": "starter-react-router", "installTimeMs": 2960, "coldBuildTimeMs": 3017, "warmBuildTimeMs": 3053, diff --git a/packages/docs/src/content/stats/starter-sveltekit.json b/packages/docs/src/content/stats/starter-sveltekit.json index 2aad2f4..d91ea5a 100644 --- a/packages/docs/src/content/stats/starter-sveltekit.json +++ b/packages/docs/src/content/stats/starter-sveltekit.json @@ -3,7 +3,7 @@ "type": "starter-kit", "prodDependencies": 0, "devDependencies": 7, - "npmGraphUrl": "https://npmgraph.js.org/?q=https://github.com/e18e/framework-tracker/blob/main/packages/starter-sveltekit/package.json", + "package": "starter-sveltekit", "installTimeMs": 2410, "coldBuildTimeMs": 4552, "warmBuildTimeMs": 4230, diff --git a/packages/docs/src/content/stats/starter-tanstack-start-react.json b/packages/docs/src/content/stats/starter-tanstack-start-react.json index 1e8e03c..f5510af 100644 --- a/packages/docs/src/content/stats/starter-tanstack-start-react.json +++ b/packages/docs/src/content/stats/starter-tanstack-start-react.json @@ -3,7 +3,7 @@ "type": "starter-kit", "prodDependencies": 13, "devDependencies": 11, - "npmGraphUrl": "https://npmgraph.js.org/?q=https://github.com/e18e/framework-tracker/blob/main/packages/starter-tanstack-start-react/package.json", + "package": "starter-tanstack-start-react", "installTimeMs": 4545, "coldBuildTimeMs": 10014, "warmBuildTimeMs": 9559, diff --git a/packages/stats-generator/src/create-stats.ts b/packages/stats-generator/src/create-stats.ts index 2c3d345..4ca9ee1 100644 --- a/packages/stats-generator/src/create-stats.ts +++ b/packages/stats-generator/src/create-stats.ts @@ -26,7 +26,13 @@ async function processFramework(framework: FrameworkConfig) { const ciStats = (await getCIStats(pkgDir)) ?? {} - const stats: FrameworkStats = { ...dependencyStats, ...ciStats } + const stats: FrameworkStats = { + name: displayName, + package: pkgDir, + type: 'starter-kit', + ...dependencyStats, + ...ciStats, + } await saveStats(pkgDir, stats) console.log(`✓ Processed ${displayName} (${pkgDir})`) diff --git a/packages/stats-generator/src/save-stats.ts b/packages/stats-generator/src/save-stats.ts index 474a225..893dd03 100644 --- a/packages/stats-generator/src/save-stats.ts +++ b/packages/stats-generator/src/save-stats.ts @@ -24,11 +24,12 @@ export async function saveStats(packageName: string, stats: FrameworkStats) { mergedStats = { ...existingStats, ...stats } } catch (error) { if (error instanceof Error && 'code' in error && error.code === 'ENOENT') { - throw new Error(`Initial stats file does not exist: ${filePath}`) + // File doesn't exist yet, will create it with the new stats + } else { + throw new Error( + `Failed to read/parse stats for ${packageName}: ${error instanceof Error ? error.message : String(error)}`, + ) } - throw new Error( - `Failed to read/parse stats for ${packageName}: ${error instanceof Error ? error.message : String(error)}`, - ) } await writeFile(filePath, JSON.stringify(mergedStats, null, 2), 'utf-8') diff --git a/packages/stats-generator/src/types.ts b/packages/stats-generator/src/types.ts index b494080..966d73c 100644 --- a/packages/stats-generator/src/types.ts +++ b/packages/stats-generator/src/types.ts @@ -19,6 +19,9 @@ export interface CIStats { } export interface FrameworkStats extends CIStats { + name?: string + package?: string + type?: string prodDependencies?: number devDependencies?: number }