@@ -114,7 +114,7 @@ async function retryAsync<T>(fn: () => Promise<T>, retries: number): Promise<T>
114
114
}
115
115
}
116
116
117
- async function downloadWitchPack ( name : string , tempDir : string , retry : number , logger : any ) {
117
+ export async function downloadWitchPack ( name : string , tempDir : string , retry : number , logger : any ) {
118
118
await retryAsync ( ( ) => {
119
119
return new Promise ( ( resolve , reject ) => {
120
120
exec ( `npm pack ${ name } --pack-destination ${ tempDir } ` , ( error ) => {
@@ -133,7 +133,7 @@ async function downloadWitchPack(name: string, tempDir: string, retry: number, l
133
133
return path . join ( tempDir , tarballPath )
134
134
}
135
135
136
- async function downloadWithNpmHttp ( name : string , tempDir : string , tempFile : string , retry : number , logger : any ) {
136
+ export async function downloadWithNpmHttp ( name : string , tempDir : string , tempFile : string , retry : number , logger : any ) {
137
137
const tarballUrl = await retryAsync ( async ( ) => {
138
138
return new Promise ( ( resolve , reject ) => {
139
139
exec ( `npm view ${ name } dist.tarball` , ( error , stdout ) => {
@@ -166,17 +166,18 @@ async function downloadWithNpmHttp(name: string, tempDir: string, tempFile: stri
166
166
fsp . unlink ( tgzPath ) . catch ( ( error ) => {
167
167
reject ( error )
168
168
} )
169
+ tgzFile . close ( )
169
170
reject ( error )
170
171
} )
171
172
} ) , retry )
172
173
173
174
return tgzPath
174
175
}
175
176
176
- async function downloadWithHttp ( name : string , tempDir : string , tempFile : string , retry : number , logger : any ) {
177
- const tarballUrl = await Promise . any ( [
177
+ export async function downloadWithHttp ( name : string , tempDir : string , tempFile : string , retry : number , logger : any ) {
178
+ const tarballUrl = await cancellablePromiseAny ( [
178
179
retryAsync ( ( ) => getTarballUrlFromRegistry ( name ) , retry ) ,
179
- retryAsync ( ( ) => getTarballUrlFromYarn ( name ) , retry ) ,
180
+ // retryAsync(() => getTarballUrlFromYarn(name), retry),
180
181
retryAsync ( ( ) => getTarballUrlFromTencent ( name ) , retry ) ,
181
182
] ) . catch ( ( error ) => {
182
183
logger . error ( `[fetch-npm]: Failed to fetch tarball URL from all sources: ${ error } ` )
@@ -224,7 +225,7 @@ async function getTarballUrlFromRegistry(name: string): Promise<string> {
224
225
return metadata . versions [ version ] . dist . tarball
225
226
}
226
227
227
- async function getTarballUrlFromYarn ( name : string ) : Promise < string > {
228
+ export async function getTarballUrlFromYarn ( name : string ) : Promise < string > {
228
229
const registryUrl = `https://registry.yarnpkg.com/${ name . replace ( '/' , '%2F' ) } `
229
230
const data : Uint8Array [ ] = [ ]
230
231
await new Promise ( ( resolve , reject ) => {
0 commit comments