Skip to content

Commit e9f41cf

Browse files
committed
feat(clients): change runtime config from constant to functional
1 parent 3dcaaf1 commit e9f41cf

File tree

1,370 files changed

+21115
-16460
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,370 files changed

+21115
-16460
lines changed

clients/client-accessanalyzer/AccessAnalyzerClient.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./command
5050
import { UpdateArchiveRuleCommandInput, UpdateArchiveRuleCommandOutput } from "./commands/UpdateArchiveRuleCommand";
5151
import { UpdateFindingsCommandInput, UpdateFindingsCommandOutput } from "./commands/UpdateFindingsCommand";
5252
import { ValidatePolicyCommandInput, ValidatePolicyCommandOutput } from "./commands/ValidatePolicyCommand";
53-
import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig";
53+
import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";
5454
import {
5555
EndpointsInputConfig,
5656
EndpointsResolvedConfig,
@@ -323,10 +323,7 @@ export class AccessAnalyzerClient extends __Client<
323323
readonly config: AccessAnalyzerClientResolvedConfig;
324324

325325
constructor(configuration: AccessAnalyzerClientConfig) {
326-
let _config_0 = {
327-
...__ClientDefaultValues,
328-
...configuration,
329-
};
326+
let _config_0 = __getRuntimeConfig(configuration);
330327
let _config_1 = resolveRegionConfig(_config_0);
331328
let _config_2 = resolveEndpointsConfig(_config_1);
332329
let _config_3 = resolveRetryConfig(_config_2);

clients/client-accessanalyzer/runtimeConfig.browser.ts

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,40 @@ import { Sha256 } from "@aws-crypto/sha256-browser";
44
import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler";
55
import { invalidProvider } from "@aws-sdk/invalid-dependency";
66
import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from "@aws-sdk/middleware-retry";
7+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
78
import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser";
89
import { calculateBodyLength } from "@aws-sdk/util-body-length-browser";
910
import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser";
1011
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser";
11-
import { ClientDefaults } from "./AccessAnalyzerClient";
12-
import { ClientSharedValues } from "./runtimeConfig.shared";
12+
import { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
13+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1314

1415
/**
1516
* @internal
1617
*/
17-
export const ClientDefaultValues: Required<ClientDefaults> = {
18-
...ClientSharedValues,
19-
runtime: "browser",
20-
base64Decoder: fromBase64,
21-
base64Encoder: toBase64,
22-
bodyLengthChecker: calculateBodyLength,
23-
credentialDefaultProvider: (_: unknown) => () => Promise.reject(new Error("Credential is missing")),
24-
defaultUserAgentProvider: defaultUserAgent({
25-
serviceId: ClientSharedValues.serviceId,
26-
clientVersion: packageInfo.version,
27-
}),
28-
maxAttempts: DEFAULT_MAX_ATTEMPTS,
29-
region: invalidProvider("Region is missing"),
30-
requestHandler: new FetchHttpHandler(),
31-
retryModeProvider: () => Promise.resolve(DEFAULT_RETRY_MODE),
32-
sha256: Sha256,
33-
streamCollector,
34-
utf8Decoder: fromUtf8,
35-
utf8Encoder: toUtf8,
18+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => {
19+
const clientSharedValues = getSharedRuntimeConfig(config);
20+
return {
21+
...clientSharedValues,
22+
runtime: "browser",
23+
base64Decoder: coalesce(config.base64Decoder, fromBase64),
24+
base64Encoder: coalesce(config.base64Encoder, toBase64),
25+
bodyLengthChecker: coalesce(config.bodyLengthChecker, calculateBodyLength),
26+
credentialDefaultProvider: coalesce(
27+
config.credentialDefaultProvider,
28+
(_: unknown) => () => Promise.reject(new Error("Credential is missing"))
29+
),
30+
defaultUserAgentProvider: coalesce(
31+
config.defaultUserAgentProvider,
32+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version })
33+
),
34+
maxAttempts: coalesce(config.maxAttempts, DEFAULT_MAX_ATTEMPTS),
35+
region: coalesce(config.region, invalidProvider("Region is missing")),
36+
requestHandler: coalesce(config.requestHandler, new FetchHttpHandler()),
37+
retryModeProvider: coalesce(config.retryModeProvider, () => Promise.resolve(DEFAULT_RETRY_MODE)),
38+
sha256: coalesce(config.sha256, Sha256),
39+
streamCollector: coalesce(config.streamCollector, streamCollector),
40+
utf8Decoder: coalesce(config.utf8Decoder, fromUtf8),
41+
utf8Encoder: coalesce(config.utf8Encoder, toUtf8),
42+
};
3643
};
Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { Sha256 } from "@aws-crypto/sha256-js";
2-
import { ClientDefaults } from "./AccessAnalyzerClient";
3-
import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser";
2+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
3+
import { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
4+
import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser";
45

56
/**
67
* @internal
78
*/
8-
export const ClientDefaultValues: Required<ClientDefaults> = {
9-
...BrowserDefaults,
10-
runtime: "react-native",
11-
sha256: Sha256,
9+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => {
10+
const browserDefaults = getBrowserRuntimeConfig(config);
11+
return {
12+
...browserDefaults,
13+
runtime: "react-native",
14+
sha256: coalesce(config.sha256, Sha256),
15+
};
1216
};
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
import { defaultRegionInfoProvider } from "./endpoints";
2+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
23
import { Logger as __Logger } from "@aws-sdk/types";
34
import { parseUrl } from "@aws-sdk/url-parser";
5+
import { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
46

57
/**
68
* @internal
79
*/
8-
export const ClientSharedValues = {
10+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => ({
911
apiVersion: "2019-11-01",
10-
disableHostPrefix: false,
11-
logger: {} as __Logger,
12-
regionInfoProvider: defaultRegionInfoProvider,
13-
serviceId: "AccessAnalyzer",
14-
urlParser: parseUrl,
15-
};
12+
disableHostPrefix: coalesce(config.disableHostPrefix, false),
13+
logger: coalesce(config.logger, {} as __Logger),
14+
regionInfoProvider: coalesce(config.regionInfoProvider, defaultRegionInfoProvider),
15+
serviceId: coalesce(config.serviceId, "AccessAnalyzer"),
16+
urlParser: coalesce(config.urlParser, parseUrl),
17+
});

clients/client-accessanalyzer/runtimeConfig.ts

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,40 @@ import { Hash } from "@aws-sdk/hash-node";
77
import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry";
88
import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider";
99
import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler";
10+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
1011
import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node";
1112
import { calculateBodyLength } from "@aws-sdk/util-body-length-node";
1213
import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
1314
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node";
14-
import { ClientDefaults } from "./AccessAnalyzerClient";
15-
import { ClientSharedValues } from "./runtimeConfig.shared";
15+
import { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
16+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1617

1718
/**
1819
* @internal
1920
*/
20-
export const ClientDefaultValues: Required<ClientDefaults> = {
21-
...ClientSharedValues,
22-
runtime: "node",
23-
base64Decoder: fromBase64,
24-
base64Encoder: toBase64,
25-
bodyLengthChecker: calculateBodyLength,
26-
credentialDefaultProvider: decorateDefaultCredentialProvider(credentialDefaultProvider),
27-
defaultUserAgentProvider: defaultUserAgent({
28-
serviceId: ClientSharedValues.serviceId,
29-
clientVersion: packageInfo.version,
30-
}),
31-
maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
32-
region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS),
33-
requestHandler: new NodeHttpHandler(),
34-
retryModeProvider: loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS),
35-
sha256: Hash.bind(null, "sha256"),
36-
streamCollector,
37-
utf8Decoder: fromUtf8,
38-
utf8Encoder: toUtf8,
21+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => {
22+
const clientSharedValues = getSharedRuntimeConfig(config);
23+
return {
24+
...clientSharedValues,
25+
runtime: "node",
26+
base64Decoder: coalesce(config.base64Decoder, fromBase64),
27+
base64Encoder: coalesce(config.base64Encoder, toBase64),
28+
bodyLengthChecker: coalesce(config.bodyLengthChecker, calculateBodyLength),
29+
credentialDefaultProvider: coalesce(
30+
config.credentialDefaultProvider,
31+
decorateDefaultCredentialProvider(credentialDefaultProvider)
32+
),
33+
defaultUserAgentProvider: coalesce(
34+
config.defaultUserAgentProvider,
35+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version })
36+
),
37+
maxAttempts: coalesce(config.maxAttempts, loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS)),
38+
region: coalesce(config.region, loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS)),
39+
requestHandler: coalesce(config.requestHandler, new NodeHttpHandler()),
40+
retryModeProvider: coalesce(config.retryModeProvider, loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS)),
41+
sha256: coalesce(config.sha256, Hash.bind(null, "sha256")),
42+
streamCollector: coalesce(config.streamCollector, streamCollector),
43+
utf8Decoder: coalesce(config.utf8Decoder, fromUtf8),
44+
utf8Encoder: coalesce(config.utf8Encoder, toUtf8),
45+
};
3946
};

clients/client-acm-pca/ACMPCAClient.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import {
6060
UpdateCertificateAuthorityCommandInput,
6161
UpdateCertificateAuthorityCommandOutput,
6262
} from "./commands/UpdateCertificateAuthorityCommand";
63-
import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig";
63+
import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";
6464
import {
6565
EndpointsInputConfig,
6666
EndpointsResolvedConfig,
@@ -327,10 +327,7 @@ export class ACMPCAClient extends __Client<
327327
readonly config: ACMPCAClientResolvedConfig;
328328

329329
constructor(configuration: ACMPCAClientConfig) {
330-
let _config_0 = {
331-
...__ClientDefaultValues,
332-
...configuration,
333-
};
330+
let _config_0 = __getRuntimeConfig(configuration);
334331
let _config_1 = resolveRegionConfig(_config_0);
335332
let _config_2 = resolveEndpointsConfig(_config_1);
336333
let _config_3 = resolveRetryConfig(_config_2);

clients/client-acm-pca/runtimeConfig.browser.ts

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,40 @@ import { Sha256 } from "@aws-crypto/sha256-browser";
44
import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler";
55
import { invalidProvider } from "@aws-sdk/invalid-dependency";
66
import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from "@aws-sdk/middleware-retry";
7+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
78
import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser";
89
import { calculateBodyLength } from "@aws-sdk/util-body-length-browser";
910
import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser";
1011
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser";
11-
import { ClientDefaults } from "./ACMPCAClient";
12-
import { ClientSharedValues } from "./runtimeConfig.shared";
12+
import { ACMPCAClientConfig } from "./ACMPCAClient";
13+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1314

1415
/**
1516
* @internal
1617
*/
17-
export const ClientDefaultValues: Required<ClientDefaults> = {
18-
...ClientSharedValues,
19-
runtime: "browser",
20-
base64Decoder: fromBase64,
21-
base64Encoder: toBase64,
22-
bodyLengthChecker: calculateBodyLength,
23-
credentialDefaultProvider: (_: unknown) => () => Promise.reject(new Error("Credential is missing")),
24-
defaultUserAgentProvider: defaultUserAgent({
25-
serviceId: ClientSharedValues.serviceId,
26-
clientVersion: packageInfo.version,
27-
}),
28-
maxAttempts: DEFAULT_MAX_ATTEMPTS,
29-
region: invalidProvider("Region is missing"),
30-
requestHandler: new FetchHttpHandler(),
31-
retryModeProvider: () => Promise.resolve(DEFAULT_RETRY_MODE),
32-
sha256: Sha256,
33-
streamCollector,
34-
utf8Decoder: fromUtf8,
35-
utf8Encoder: toUtf8,
18+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => {
19+
const clientSharedValues = getSharedRuntimeConfig(config);
20+
return {
21+
...clientSharedValues,
22+
runtime: "browser",
23+
base64Decoder: coalesce(config.base64Decoder, fromBase64),
24+
base64Encoder: coalesce(config.base64Encoder, toBase64),
25+
bodyLengthChecker: coalesce(config.bodyLengthChecker, calculateBodyLength),
26+
credentialDefaultProvider: coalesce(
27+
config.credentialDefaultProvider,
28+
(_: unknown) => () => Promise.reject(new Error("Credential is missing"))
29+
),
30+
defaultUserAgentProvider: coalesce(
31+
config.defaultUserAgentProvider,
32+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version })
33+
),
34+
maxAttempts: coalesce(config.maxAttempts, DEFAULT_MAX_ATTEMPTS),
35+
region: coalesce(config.region, invalidProvider("Region is missing")),
36+
requestHandler: coalesce(config.requestHandler, new FetchHttpHandler()),
37+
retryModeProvider: coalesce(config.retryModeProvider, () => Promise.resolve(DEFAULT_RETRY_MODE)),
38+
sha256: coalesce(config.sha256, Sha256),
39+
streamCollector: coalesce(config.streamCollector, streamCollector),
40+
utf8Decoder: coalesce(config.utf8Decoder, fromUtf8),
41+
utf8Encoder: coalesce(config.utf8Encoder, toUtf8),
42+
};
3643
};
Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { Sha256 } from "@aws-crypto/sha256-js";
2-
import { ClientDefaults } from "./ACMPCAClient";
3-
import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser";
2+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
3+
import { ACMPCAClientConfig } from "./ACMPCAClient";
4+
import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser";
45

56
/**
67
* @internal
78
*/
8-
export const ClientDefaultValues: Required<ClientDefaults> = {
9-
...BrowserDefaults,
10-
runtime: "react-native",
11-
sha256: Sha256,
9+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => {
10+
const browserDefaults = getBrowserRuntimeConfig(config);
11+
return {
12+
...browserDefaults,
13+
runtime: "react-native",
14+
sha256: coalesce(config.sha256, Sha256),
15+
};
1216
};
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
import { defaultRegionInfoProvider } from "./endpoints";
2+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
23
import { Logger as __Logger } from "@aws-sdk/types";
34
import { parseUrl } from "@aws-sdk/url-parser";
5+
import { ACMPCAClientConfig } from "./ACMPCAClient";
46

57
/**
68
* @internal
79
*/
8-
export const ClientSharedValues = {
10+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => ({
911
apiVersion: "2017-08-22",
10-
disableHostPrefix: false,
11-
logger: {} as __Logger,
12-
regionInfoProvider: defaultRegionInfoProvider,
13-
serviceId: "ACM PCA",
14-
urlParser: parseUrl,
15-
};
12+
disableHostPrefix: coalesce(config.disableHostPrefix, false),
13+
logger: coalesce(config.logger, {} as __Logger),
14+
regionInfoProvider: coalesce(config.regionInfoProvider, defaultRegionInfoProvider),
15+
serviceId: coalesce(config.serviceId, "ACM PCA"),
16+
urlParser: coalesce(config.urlParser, parseUrl),
17+
});

clients/client-acm-pca/runtimeConfig.ts

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,40 @@ import { Hash } from "@aws-sdk/hash-node";
77
import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry";
88
import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider";
99
import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler";
10+
import { nullishCoalescing as coalesce } from "@aws-sdk/smithy-client";
1011
import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node";
1112
import { calculateBodyLength } from "@aws-sdk/util-body-length-node";
1213
import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
1314
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node";
14-
import { ClientDefaults } from "./ACMPCAClient";
15-
import { ClientSharedValues } from "./runtimeConfig.shared";
15+
import { ACMPCAClientConfig } from "./ACMPCAClient";
16+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1617

1718
/**
1819
* @internal
1920
*/
20-
export const ClientDefaultValues: Required<ClientDefaults> = {
21-
...ClientSharedValues,
22-
runtime: "node",
23-
base64Decoder: fromBase64,
24-
base64Encoder: toBase64,
25-
bodyLengthChecker: calculateBodyLength,
26-
credentialDefaultProvider: decorateDefaultCredentialProvider(credentialDefaultProvider),
27-
defaultUserAgentProvider: defaultUserAgent({
28-
serviceId: ClientSharedValues.serviceId,
29-
clientVersion: packageInfo.version,
30-
}),
31-
maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
32-
region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS),
33-
requestHandler: new NodeHttpHandler(),
34-
retryModeProvider: loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS),
35-
sha256: Hash.bind(null, "sha256"),
36-
streamCollector,
37-
utf8Decoder: fromUtf8,
38-
utf8Encoder: toUtf8,
21+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => {
22+
const clientSharedValues = getSharedRuntimeConfig(config);
23+
return {
24+
...clientSharedValues,
25+
runtime: "node",
26+
base64Decoder: coalesce(config.base64Decoder, fromBase64),
27+
base64Encoder: coalesce(config.base64Encoder, toBase64),
28+
bodyLengthChecker: coalesce(config.bodyLengthChecker, calculateBodyLength),
29+
credentialDefaultProvider: coalesce(
30+
config.credentialDefaultProvider,
31+
decorateDefaultCredentialProvider(credentialDefaultProvider)
32+
),
33+
defaultUserAgentProvider: coalesce(
34+
config.defaultUserAgentProvider,
35+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version })
36+
),
37+
maxAttempts: coalesce(config.maxAttempts, loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS)),
38+
region: coalesce(config.region, loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS)),
39+
requestHandler: coalesce(config.requestHandler, new NodeHttpHandler()),
40+
retryModeProvider: coalesce(config.retryModeProvider, loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS)),
41+
sha256: coalesce(config.sha256, Hash.bind(null, "sha256")),
42+
streamCollector: coalesce(config.streamCollector, streamCollector),
43+
utf8Decoder: coalesce(config.utf8Decoder, fromUtf8),
44+
utf8Encoder: coalesce(config.utf8Encoder, toUtf8),
45+
};
3946
};

0 commit comments

Comments
 (0)