Skip to content

Commit 2e3faf6

Browse files
authored
chore: convert second param in StandardRetryStrategy to options (#1250)
1 parent 4a6470c commit 2e3faf6

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

packages/middleware-retry/src/defaultStrategy.ts

+17-3
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,26 @@ export interface DelayDecider {
3333
(delayBase: number, attempts: number): number;
3434
}
3535

36+
/**
37+
* Strategy options to be passed to StandardRetryStrategy
38+
*/
39+
export interface StandardRetryStrategyOptions {
40+
retryDecider?: RetryDecider;
41+
delayDecider?: DelayDecider;
42+
}
43+
3644
export class StandardRetryStrategy implements RetryStrategy {
45+
private retryDecider: RetryDecider;
46+
private delayDecider: DelayDecider;
47+
3748
constructor(
3849
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+
4256
private shouldRetry(error: SdkError, attempts: number) {
4357
return attempts < this.maxAttempts && this.retryDecider(error);
4458
}

packages/middleware-retry/src/index.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ describe("retryMiddleware", () => {
7575
"defaultDelayDecider"
7676
);
7777
const retryDecider: RetryDecider = (error: SdkError) => true;
78-
const strategy = new StandardRetryStrategy(maxAttempts, retryDecider);
78+
const strategy = new StandardRetryStrategy(maxAttempts, { retryDecider });
7979
const retryHandler = retryMiddleware({
8080
maxAttempts,
8181
retryStrategy: strategy

0 commit comments

Comments
 (0)