@@ -44,6 +44,8 @@ export interface PackageComparisonData {
4444 }
4545 /** Whether this is a binary-only package (CLI without library entry points) */
4646 isBinaryOnly ?: boolean
47+ /** Total likes from atproto */
48+ totalLikes : number
4749}
4850
4951/**
@@ -104,16 +106,19 @@ export function usePackageComparison(packageNames: MaybeRefOrGetter<string[]>) {
104106 if ( ! latestVersion ) return null
105107
106108 // Fetch fast additional data in parallel (optional - failures are ok)
107- const [ downloads , analysis , vulns ] = await Promise . all ( [
109+ const [ downloads , analysis , vulns , likes ] = await Promise . all ( [
108110 $fetch < { downloads : number } > (
109111 `https://api.npmjs.org/downloads/point/last-week/${ encodePackageName ( name ) } ` ,
110112 ) . catch ( ( ) => null ) ,
111113 $fetch < PackageAnalysisResponse > ( `/api/registry/analysis/${ name } ` ) . catch ( ( ) => null ) ,
112114 $fetch < VulnerabilityTreeResult > ( `/api/registry/vulnerabilities/${ name } ` ) . catch (
113115 ( ) => null ,
114116 ) ,
117+ $fetch < PackageLikes > ( `/api/social/likes/${ name } ` ) . catch ( ( ) => ( {
118+ totalLikes : 0 ,
119+ userHasLiked : false ,
120+ } ) ) ,
115121 ] )
116-
117122 const versionData = pkgData . versions [ latestVersion ]
118123 const packageSize = versionData ?. dist ?. unpackedSize
119124
@@ -160,6 +165,7 @@ export function usePackageComparison(packageNames: MaybeRefOrGetter<string[]>) {
160165 deprecated : versionData ?. deprecated ,
161166 } ,
162167 isBinaryOnly : isBinary ,
168+ totalLikes : likes . totalLikes ,
163169 }
164170 } catch {
165171 return null
@@ -384,6 +390,14 @@ function computeFacetValue(
384390 status : isDeprecated ? 'bad' : 'good' ,
385391 }
386392 }
393+ case 'totalLikes' : {
394+ if ( data . totalLikes === undefined ) return null
395+ return {
396+ raw : data . totalLikes ,
397+ display : formatCompactNumber ( data . totalLikes ) ,
398+ status : 'neutral' ,
399+ }
400+ }
387401 // Coming soon facets
388402 case 'totalDependencies' : {
389403 if ( ! data . installSize ) return null
0 commit comments