1+ import type { NuxtApp } from '#app'
12import type { NpmSearchResponse , NpmSearchResult , MinimalPackument } from '#shared/types'
23import { emptySearchResponse , packumentToSearchResult } from './useNpmSearch'
3- import { NPM_REGISTRY , NPM_API } from '~/utils/npm/common'
44import { mapWithConcurrency } from '#shared/utils/async'
55
66/**
@@ -10,6 +10,7 @@ import { mapWithConcurrency } from '#shared/utils/async'
1010 * Note: npm bulk downloads API does not support scoped packages.
1111 */
1212async function fetchBulkDownloads (
13+ $npmApi : NuxtApp [ '$npmApi' ] ,
1314 packageNames : string [ ] ,
1415 options : Parameters < typeof $fetch > [ 1 ] = { } ,
1516) : Promise < Map < string , number > > {
@@ -28,11 +29,11 @@ async function fetchBulkDownloads(
2829 bulkPromises . push (
2930 ( async ( ) => {
3031 try {
31- const response = await $fetch < Record < string , { downloads : number } | null > > (
32- `${ NPM_API } /downloads/point/last-week/${ chunk . join ( ',' ) } ` ,
32+ const response = await $npmApi < Record < string , { downloads : number } | null > > (
33+ `/downloads/point/last-week/${ chunk . join ( ',' ) } ` ,
3334 options ,
3435 )
35- for ( const [ name , data ] of Object . entries ( response ) ) {
36+ for ( const [ name , data ] of Object . entries ( response . data ) ) {
3637 if ( data ?. downloads !== undefined ) {
3738 downloads . set ( name , data . downloads )
3839 }
@@ -54,8 +55,8 @@ async function fetchBulkDownloads(
5455 const results = await Promise . allSettled (
5556 batch . map ( async name => {
5657 const encoded = encodePackageName ( name )
57- const data = await $fetch < { downloads : number } > (
58- `${ NPM_API } /downloads/point/last-week/${ encoded } ` ,
58+ const { data } = await $npmApi < { downloads : number } > (
59+ `/downloads/point/last-week/${ encoded } ` ,
5960 )
6061 return { name, downloads : data . downloads }
6162 } ) ,
@@ -80,11 +81,9 @@ async function fetchBulkDownloads(
8081 * Returns search-result-like objects for compatibility with PackageList
8182 */
8283export function useOrgPackages ( orgName : MaybeRefOrGetter < string > ) {
83- const cachedFetch = useCachedFetch ( )
84-
8584 const asyncData = useLazyAsyncData (
8685 ( ) => `org-packages:${ toValue ( orgName ) } ` ,
87- async ( _nuxtApp , { signal } ) => {
86+ async ( { $npmRegistry , $npmApi } , { signal } ) => {
8887 const org = toValue ( orgName )
8988 if ( ! org ) {
9089 return emptySearchResponse
@@ -93,8 +92,8 @@ export function useOrgPackages(orgName: MaybeRefOrGetter<string>) {
9392 // Get all package names in the org
9493 let packageNames : string [ ]
9594 try {
96- const { data } = await cachedFetch < Record < string , string > > (
97- `${ NPM_REGISTRY } /-/org/${ encodeURIComponent ( org ) } /package` ,
95+ const { data } = await $npmRegistry < Record < string , string > > (
96+ `/-/org/${ encodeURIComponent ( org ) } /package` ,
9897 { signal } ,
9998 )
10099 packageNames = Object . keys ( data )
@@ -124,10 +123,9 @@ export function useOrgPackages(orgName: MaybeRefOrGetter<string>) {
124123 async name => {
125124 try {
126125 const encoded = encodePackageName ( name )
127- const { data : pkg } = await cachedFetch < MinimalPackument > (
128- `${ NPM_REGISTRY } /${ encoded } ` ,
129- { signal } ,
130- )
126+ const { data : pkg } = await $npmRegistry < MinimalPackument > ( `/${ encoded } ` , {
127+ signal,
128+ } )
131129 return pkg
132130 } catch {
133131 return null
@@ -141,7 +139,7 @@ export function useOrgPackages(orgName: MaybeRefOrGetter<string>) {
141139 )
142140 } ) ( ) ,
143141 // Fetch downloads in bulk
144- fetchBulkDownloads ( packageNames , { signal } ) ,
142+ fetchBulkDownloads ( $npmApi , packageNames , { signal } ) ,
145143 ] )
146144
147145 // Convert to search results with download data
0 commit comments