@@ -249,46 +249,49 @@ export async function downloadTool(
249
249
}
250
250
251
251
tl . debug ( 'creating stream' ) ;
252
- let file : NodeJS . WritableStream = fs . createWriteStream ( destPath ) ;
253
- file . on ( 'open' , async ( fd ) => {
254
- try {
255
- let stream = response . message . pipe ( file ) ;
256
- stream . on ( 'close' , ( ) => {
257
- tl . debug ( 'download complete' ) ;
258
- let fileSizeInBytes : number ;
259
- try {
260
- fileSizeInBytes = _getFileSizeOnDisk ( destPath ) ;
261
- }
262
- catch ( err ) {
263
- fileSizeInBytes = NaN ;
264
- tl . warning ( `Unable to check file size of ${ destPath } due to error: ${ err . Message } ` ) ;
265
- }
266
-
267
- if ( ! isNaN ( fileSizeInBytes ) ) {
268
- tl . debug ( `Downloaded file size: ${ fileSizeInBytes } bytes` ) ;
269
- } else {
270
- tl . debug ( `File size on disk was not found` ) ;
271
- }
272
-
273
- if ( ! isNaN ( downloadedContentLength ) &&
274
- ! isNaN ( fileSizeInBytes ) &&
275
- fileSizeInBytes !== downloadedContentLength ) {
276
- tl . warning ( `Content-Length (${ downloadedContentLength } bytes) did not match downloaded file size (${ fileSizeInBytes } bytes).` ) ;
277
- }
278
-
279
- resolve ( destPath ) ;
280
- } ) ;
281
- }
282
- catch ( err ) {
252
+ const file : NodeJS . WritableStream = fs . createWriteStream ( destPath ) ;
253
+ file
254
+ . on ( 'open' , async ( fd ) => {
255
+ try {
256
+ response . message
257
+ . on ( 'error' , ( err ) => {
258
+ file . end ( ) ;
259
+ reject ( err ) ;
260
+ } )
261
+ . pipe ( file ) ;
262
+ } catch ( err ) {
263
+ reject ( err ) ;
264
+ }
265
+ } )
266
+ . on ( 'close' , ( ) => {
267
+ tl . debug ( 'download complete' ) ;
268
+ let fileSizeInBytes : number ;
269
+ try {
270
+ fileSizeInBytes = _getFileSizeOnDisk ( destPath ) ;
271
+ } catch ( err ) {
272
+ fileSizeInBytes = NaN ;
273
+ tl . warning ( `Unable to check file size of ${ destPath } due to error: ${ err . Message } ` ) ;
274
+ }
275
+
276
+ if ( ! isNaN ( fileSizeInBytes ) ) {
277
+ tl . debug ( `Downloaded file size: ${ fileSizeInBytes } bytes` ) ;
278
+ } else {
279
+ tl . debug ( `File size on disk was not found` ) ;
280
+ }
281
+
282
+ if ( ! isNaN ( downloadedContentLength ) &&
283
+ ! isNaN ( fileSizeInBytes ) &&
284
+ fileSizeInBytes !== downloadedContentLength ) {
285
+ tl . warning ( `Content-Length (${ downloadedContentLength } bytes) did not match downloaded file size (${ fileSizeInBytes } bytes).` ) ;
286
+ }
287
+
288
+ resolve ( destPath ) ;
289
+ } )
290
+ . on ( 'error' , ( err ) => {
291
+ file . end ( ) ;
283
292
reject ( err ) ;
284
- }
285
- } ) ;
286
- file . on ( 'error' , ( err ) => {
287
- file . end ( ) ;
288
- reject ( err ) ;
289
- } ) ;
290
- }
291
- catch ( error ) {
293
+ } ) ;
294
+ } catch ( error ) {
292
295
reject ( error ) ;
293
296
}
294
297
} ) ;
0 commit comments