@@ -9,7 +9,7 @@ export const DEFAULT_HEADERS: Record<string, string> = {
9
9
} ;
10
10
export const DEFAULT_NPM_REGISTRY_URL = `https://registry.npmjs.org` ;
11
11
12
- export async function fetchAsJson ( packageName : string ) {
12
+ export async function fetchAsJson ( packageName : string , version ?: string ) {
13
13
const npmRegistryUrl = process . env . COREPACK_NPM_REGISTRY || DEFAULT_NPM_REGISTRY_URL ;
14
14
15
15
if ( process . env . COREPACK_ENABLE_NETWORK === `0` )
@@ -25,18 +25,14 @@ export async function fetchAsJson(packageName: string) {
25
25
headers . authorization = `Basic ${ encodedCreds } ` ;
26
26
}
27
27
28
- return httpUtils . fetchAsJson ( `${ npmRegistryUrl } /${ packageName } ` , { headers} ) ;
28
+ return httpUtils . fetchAsJson ( `${ npmRegistryUrl } /${ packageName } ${ version ? `/ ${ version } ` : `` } ` , { headers} ) ;
29
29
}
30
30
31
31
export async function fetchLatestStableVersion ( packageName : string ) {
32
- const metadata = await fetchAsJson ( packageName ) ;
33
-
34
- const { latest} = metadata [ `dist-tags` ] ;
35
- if ( latest === undefined )
36
- throw new Error ( `${ packageName } does not have a "latest" tag.` ) ;
32
+ const metadata = await fetchAsJson ( packageName , `latest` ) ;
37
33
38
- const { shasum} = metadata . versions [ latest ] . dist ;
39
- return `${ latest } +sha1.${ shasum } ` ;
34
+ const { shasum} = metadata . dist ;
35
+ return `${ metadata . version } +sha1.${ shasum } ` ;
40
36
}
41
37
42
38
export async function fetchAvailableTags ( packageName : string ) {
@@ -50,11 +46,7 @@ export async function fetchAvailableVersions(packageName: string) {
50
46
}
51
47
52
48
export async function fetchTarballUrl ( packageName : string , version : string ) {
53
- const metadata = await fetchAsJson ( packageName ) ;
54
- const versionMetadata = metadata . versions ?. [ version ] ;
55
- if ( versionMetadata === undefined )
56
- throw new Error ( `${ packageName } @${ version } does not exist.` ) ;
57
-
49
+ const versionMetadata = await fetchAsJson ( packageName , version ) ;
58
50
const { tarball} = versionMetadata . dist ;
59
51
if ( tarball === undefined || ! tarball . startsWith ( `http` ) )
60
52
throw new Error ( `${ packageName } @${ version } does not have a valid tarball.` ) ;
0 commit comments