Skip to content

Commit 14facc0

Browse files
committed
fix: direct dependency count
1 parent 72b0507 commit 14facc0

3 files changed

Lines changed: 18 additions & 7 deletions

File tree

app/composables/usePackageComparison.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export interface PackageComparisonData {
1818
installSize?: {
1919
selfSize: number
2020
totalSize: number
21+
directDepCount: number
2122
dependencyCount: number
2223
}
2324
analysis?: PackageAnalysisResponse
@@ -361,11 +362,11 @@ function computeFacetValue(
361362

362363
case 'dependencies':
363364
if (!data.installSize) return null
364-
const depCount = data.installSize.dependencyCount
365+
const directDepCount = data.installSize.directDepCount
365366
return {
366-
raw: depCount,
367-
display: String(depCount),
368-
status: depCount > 50 ? 'warning' : 'neutral',
367+
raw: directDepCount,
368+
display: String(directDepCount),
369+
status: directDepCount > 50 ? 'warning' : 'neutral',
369370
}
370371

371372
case 'deprecated':
@@ -380,7 +381,13 @@ function computeFacetValue(
380381

381382
// Coming soon facets
382383
case 'totalDependencies':
383-
return null
384+
if (!data.installSize) return null
385+
const depCount = data.installSize.dependencyCount
386+
return {
387+
raw: depCount,
388+
display: String(depCount),
389+
status: depCount > 50 ? 'warning' : 'neutral',
390+
}
384391

385392
default:
386393
return null

server/utils/install-size.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ export interface InstallSizeResult {
1010
selfSize: number
1111
/** Total unpacked size including all dependencies (bytes) */
1212
totalSize: number
13+
/** Number of direct dependencies */
14+
directDepCount: number
1315
/** Number of dependencies (including transitive) */
1416
dependencyCount: number
1517
/** Breakdown of dependency sizes */
@@ -34,7 +36,7 @@ export interface DependencySize {
3436
*/
3537
export const calculateInstallSize = defineCachedFunction(
3638
async (name: string, version: string): Promise<InstallSizeResult> => {
37-
const resolved = await resolveDependencyTree(name, version)
39+
const resolved = await resolveDependencyTree(name, version, { trackDepth: true })
3840

3941
// Separate self from dependencies
4042
const selfKey = `${name}@${version}`
@@ -45,6 +47,7 @@ export const calculateInstallSize = defineCachedFunction(
4547
const dependencies: DependencySize[] = []
4648
let totalSize = selfSize
4749
let dependencyCount = 0
50+
let directDepCount = 0
4851

4952
for (const [key, dep] of resolved) {
5053
if (key === selfKey) continue
@@ -57,6 +60,7 @@ export const calculateInstallSize = defineCachedFunction(
5760
})
5861
totalSize += dep.size
5962
dependencyCount++
63+
if (dep.depth === 'direct') directDepCount++
6064
}
6165

6266
// Sort by size descending
@@ -67,6 +71,7 @@ export const calculateInstallSize = defineCachedFunction(
6771
version,
6872
selfSize,
6973
totalSize,
74+
directDepCount,
7075
dependencyCount,
7176
dependencies,
7277
}

shared/types/comparison.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ export const FACET_INFO: Record<ComparisonFacet, Omit<FacetInfo, 'id'>> = {
4141
},
4242
totalDependencies: {
4343
category: 'performance',
44-
comingSoon: true,
4544
},
4645
// Health
4746
downloads: {

0 commit comments

Comments
 (0)