@@ -402,9 +402,8 @@ export class AmazonS3Client {
402
402
}
403
403
404
404
private async _sendCacheRequestWithRetries < T > ( sendRequest : ( ) => Promise < T > ) : Promise < T > {
405
- const terminal : ITerminal = this . _terminal ;
406
-
407
405
type TryResponse = { hasNetworkError : false ; response : T } | { hasNetworkError : true ; error : unknown } ;
406
+
408
407
const trySendRequest : ( ) => Promise < TryResponse > = async ( ) : Promise < TryResponse > => {
409
408
try {
410
409
const response : T = await sendRequest ( ) ;
@@ -422,20 +421,20 @@ export class AmazonS3Client {
422
421
423
422
const response : TryResponse = await trySendRequest ( ) ;
424
423
424
+ const log : ( ...messageParts : ( string | IColorableSequence ) [ ] ) => void = this . _writeDebugLine . bind ( this ) ;
425
+
425
426
if ( response . hasNetworkError ) {
426
427
if ( storageRetryOptions && storageRetryOptions . maxTries > 1 ) {
427
- terminal . writeVerboseLine (
428
- 'Network request failed. Will retry request as specified in storageRetryOptions'
429
- ) ;
430
- const { retryDelayInMs, retryPolicyType, maxTries, maxRetryDelayInMs } = storageRetryOptions ;
428
+ log ( 'Network request failed. Will retry request as specified in storageRetryOptions' ) ;
431
429
async function retry ( retryAttempt : number ) : Promise < T > {
430
+ const { retryDelayInMs, retryPolicyType, maxTries, maxRetryDelayInMs } = storageRetryOptions ;
432
431
let delay : number = retryDelayInMs ;
433
432
if ( retryPolicyType === StorageRetryPolicyType . EXPONENTIAL ) {
434
433
delay = retryDelayInMs * Math . pow ( 2 , retryAttempt - 1 ) ;
435
434
}
436
435
delay = Math . min ( maxRetryDelayInMs , delay ) ;
437
436
438
- terminal . writeVerboseLine ( `Will retry request in ${ delay } s...` ) ;
437
+ log ( `Will retry request in ${ delay } s...` ) ;
439
438
await new Promise < void > ( ( resolve ) => {
440
439
setTimeout ( ( ) => {
441
440
resolve ( ) ;
@@ -446,10 +445,10 @@ export class AmazonS3Client {
446
445
447
446
if ( response . hasNetworkError ) {
448
447
if ( retryAttempt < maxTries - 1 ) {
449
- terminal . writeVerboseLine ( 'The retried request failed, will try again' ) ;
448
+ log ( 'The retried request failed, will try again' ) ;
450
449
return retry ( retryAttempt + 1 ) ;
451
450
} else {
452
- terminal . writeVerboseLine (
451
+ log (
453
452
'The retried request failed and has reached the maxTries limit, the cloud service is not accessible'
454
453
) ;
455
454
throw response . error ;
@@ -460,7 +459,7 @@ export class AmazonS3Client {
460
459
}
461
460
return retry ( 1 ) ;
462
461
} else {
463
- terminal . writeVerboseLine ( 'Network request failed and storageRetryOptions is not specified' ) ;
462
+ log ( 'Network request failed and storageRetryOptions is not specified' ) ;
464
463
throw response . error ;
465
464
}
466
465
}
0 commit comments