UNPKG

2.73 kBJavaScriptView Raw
1import { __assign, __awaiter, __generator } from "tslib";
2import { normalizeProvider } from "@aws-sdk/util-middleware";
3import { AdaptiveRetryStrategy } from "./AdaptiveRetryStrategy";
4import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES } from "./config";
5import { StandardRetryStrategy } from "./StandardRetryStrategy";
6export var ENV_MAX_ATTEMPTS = "AWS_MAX_ATTEMPTS";
7export var CONFIG_MAX_ATTEMPTS = "max_attempts";
8export var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {
9 environmentVariableSelector: function (env) {
10 var value = env[ENV_MAX_ATTEMPTS];
11 if (!value)
12 return undefined;
13 var maxAttempt = parseInt(value);
14 if (Number.isNaN(maxAttempt)) {
15 throw new Error("Environment variable ".concat(ENV_MAX_ATTEMPTS, " mast be a number, got \"").concat(value, "\""));
16 }
17 return maxAttempt;
18 },
19 configFileSelector: function (profile) {
20 var value = profile[CONFIG_MAX_ATTEMPTS];
21 if (!value)
22 return undefined;
23 var maxAttempt = parseInt(value);
24 if (Number.isNaN(maxAttempt)) {
25 throw new Error("Shared config file entry ".concat(CONFIG_MAX_ATTEMPTS, " mast be a number, got \"").concat(value, "\""));
26 }
27 return maxAttempt;
28 },
29 default: DEFAULT_MAX_ATTEMPTS,
30};
31export var resolveRetryConfig = function (input) {
32 var _a;
33 var maxAttempts = normalizeProvider((_a = input.maxAttempts) !== null && _a !== void 0 ? _a : DEFAULT_MAX_ATTEMPTS);
34 return __assign(__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: function () { return __awaiter(void 0, void 0, void 0, function () {
35 var retryMode;
36 return __generator(this, function (_a) {
37 switch (_a.label) {
38 case 0:
39 if (input.retryStrategy) {
40 return [2, input.retryStrategy];
41 }
42 return [4, normalizeProvider(input.retryMode)()];
43 case 1:
44 retryMode = _a.sent();
45 if (retryMode === RETRY_MODES.ADAPTIVE) {
46 return [2, new AdaptiveRetryStrategy(maxAttempts)];
47 }
48 return [2, new StandardRetryStrategy(maxAttempts)];
49 }
50 });
51 }); } });
52};
53export var ENV_RETRY_MODE = "AWS_RETRY_MODE";
54export var CONFIG_RETRY_MODE = "retry_mode";
55export var NODE_RETRY_MODE_CONFIG_OPTIONS = {
56 environmentVariableSelector: function (env) { return env[ENV_RETRY_MODE]; },
57 configFileSelector: function (profile) { return profile[CONFIG_RETRY_MODE]; },
58 default: DEFAULT_RETRY_MODE,
59};