Skip to content

Commit c7371b6

Browse files
authored
chore(middleware-retry): move non-config interfaces to types.ts (#2435)
1 parent 72611ca commit c7371b6

File tree

5 files changed

+47
-43
lines changed

5 files changed

+47
-43
lines changed

packages/middleware-retry/src/defaultRetryQuota.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { SdkError } from "@aws-sdk/smithy-client";
22

33
import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from "./constants";
4-
import { RetryQuota } from "./defaultStrategy";
4+
import { RetryQuota } from "./types";
55

66
export const getDefaultRetryQuota = (initialRetryTokens: number): RetryQuota => {
77
const MAX_CAPACITY = initialRetryTokens;

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import { v4 } from "uuid";
44

55
import { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, THROTTLING_RETRY_DELAY_BASE } from "./constants";
66
import { getDefaultRetryQuota } from "./defaultRetryQuota";
7-
import { DEFAULT_MAX_ATTEMPTS, RetryQuota, StandardRetryStrategy } from "./defaultStrategy";
7+
import { DEFAULT_MAX_ATTEMPTS, StandardRetryStrategy } from "./defaultStrategy";
88
import { defaultDelayDecider } from "./delayDecider";
99
import { defaultRetryDecider } from "./retryDecider";
10+
import { RetryQuota } from "./types";
1011

1112
jest.mock("@aws-sdk/service-error-classification");
1213
jest.mock("./delayDecider");

packages/middleware-retry/src/defaultStrategy.ts

+1-41
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
import { getDefaultRetryQuota } from "./defaultRetryQuota";
1515
import { defaultDelayDecider } from "./delayDecider";
1616
import { defaultRetryDecider } from "./retryDecider";
17+
import { DelayDecider, RetryDecider, RetryQuota } from "./types";
1718

1819
/**
1920
* The default value for how many HTTP requests an SDK should make for a
@@ -26,47 +27,6 @@ export const DEFAULT_MAX_ATTEMPTS = 3;
2627
*/
2728
export const DEFAULT_RETRY_MODE = "standard";
2829

29-
/**
30-
* Determines whether an error is retryable based on the number of retries
31-
* already attempted, the HTTP status code, and the error received (if any).
32-
*
33-
* @param error The error encountered.
34-
*/
35-
export interface RetryDecider {
36-
(error: SdkError): boolean;
37-
}
38-
39-
/**
40-
* Determines the number of milliseconds to wait before retrying an action.
41-
*
42-
* @param delayBase The base delay (in milliseconds).
43-
* @param attempts The number of times the action has already been tried.
44-
*/
45-
export interface DelayDecider {
46-
(delayBase: number, attempts: number): number;
47-
}
48-
49-
/**
50-
* Interface that specifies the retry quota behavior.
51-
*/
52-
export interface RetryQuota {
53-
/**
54-
* returns true if retry tokens are available from the retry quota bucket.
55-
*/
56-
hasRetryTokens: (error: SdkError) => boolean;
57-
58-
/**
59-
* returns token amount from the retry quota bucket.
60-
* throws error is retry tokens are not available.
61-
*/
62-
retrieveRetryTokens: (error: SdkError) => number;
63-
64-
/**
65-
* releases tokens back to the retry quota.
66-
*/
67-
releaseRetryTokens: (releaseCapacityAmount?: number) => void;
68-
}
69-
7030
/**
7131
* Strategy options to be passed to StandardRetryStrategy
7232
*/

packages/middleware-retry/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ export * from "./defaultStrategy";
44
export * from "./configurations";
55
export * from "./delayDecider";
66
export * from "./retryDecider";
7+
export * from "./types";
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { SdkError } from "@aws-sdk/smithy-client";
2+
3+
/**
4+
* Determines whether an error is retryable based on the number of retries
5+
* already attempted, the HTTP status code, and the error received (if any).
6+
*
7+
* @param error The error encountered.
8+
*/
9+
export interface RetryDecider {
10+
(error: SdkError): boolean;
11+
}
12+
13+
/**
14+
* Determines the number of milliseconds to wait before retrying an action.
15+
*
16+
* @param delayBase The base delay (in milliseconds).
17+
* @param attempts The number of times the action has already been tried.
18+
*/
19+
export interface DelayDecider {
20+
(delayBase: number, attempts: number): number;
21+
}
22+
23+
/**
24+
* Interface that specifies the retry quota behavior.
25+
*/
26+
export interface RetryQuota {
27+
/**
28+
* returns true if retry tokens are available from the retry quota bucket.
29+
*/
30+
hasRetryTokens: (error: SdkError) => boolean;
31+
32+
/**
33+
* returns token amount from the retry quota bucket.
34+
* throws error is retry tokens are not available.
35+
*/
36+
retrieveRetryTokens: (error: SdkError) => number;
37+
38+
/**
39+
* releases tokens back to the retry quota.
40+
*/
41+
releaseRetryTokens: (releaseCapacityAmount?: number) => void;
42+
}

0 commit comments

Comments
 (0)