File tree 2 files changed +18
-4
lines changed
packages/middleware-retry/src
2 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -33,12 +33,26 @@ export interface DelayDecider {
33
33
( delayBase : number , attempts : number ) : number ;
34
34
}
35
35
36
+ /**
37
+ * Strategy options to be passed to StandardRetryStrategy
38
+ */
39
+ export interface StandardRetryStrategyOptions {
40
+ retryDecider ?: RetryDecider ;
41
+ delayDecider ?: DelayDecider ;
42
+ }
43
+
36
44
export class StandardRetryStrategy implements RetryStrategy {
45
+ private retryDecider : RetryDecider ;
46
+ private delayDecider : DelayDecider ;
47
+
37
48
constructor (
38
49
public readonly maxAttempts : number ,
39
- private retryDecider : RetryDecider = defaultRetryDecider ,
40
- private delayDecider : DelayDecider = defaultDelayDecider
41
- ) { }
50
+ options ?: StandardRetryStrategyOptions
51
+ ) {
52
+ this . retryDecider = options ?. retryDecider ?? defaultRetryDecider ;
53
+ this . delayDecider = options ?. delayDecider ?? defaultDelayDecider ;
54
+ }
55
+
42
56
private shouldRetry ( error : SdkError , attempts : number ) {
43
57
return attempts < this . maxAttempts && this . retryDecider ( error ) ;
44
58
}
Original file line number Diff line number Diff line change @@ -75,7 +75,7 @@ describe("retryMiddleware", () => {
75
75
"defaultDelayDecider"
76
76
) ;
77
77
const retryDecider : RetryDecider = ( error : SdkError ) => true ;
78
- const strategy = new StandardRetryStrategy ( maxAttempts , retryDecider ) ;
78
+ const strategy = new StandardRetryStrategy ( maxAttempts , { retryDecider } ) ;
79
79
const retryHandler = retryMiddleware ( {
80
80
maxAttempts,
81
81
retryStrategy : strategy
You can’t perform that action at this time.
0 commit comments