Skip to content

Commit 5eca565

Browse files
authored
feat(clients): change runtime config from constant to provider functions (#2574)
* chore: update codegen to make runtime config functional * feat(clients): change runtime config from constant to functional * chore: use inline nullish coalescing instead of helper * feat(clients): use inline nullish coalescing * feat(clients): set configs not modeled in runtimeConfig * test: fix codegen test
1 parent e643735 commit 5eca565

File tree

1,387 files changed

+19284
-16526
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,387 files changed

+19284
-16526
lines changed

Diff for: clients/client-accessanalyzer/AccessAnalyzerClient.ts

+2-5
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,
@@ -324,10 +324,7 @@ export class AccessAnalyzerClient extends __Client<
324324
readonly config: AccessAnalyzerClientResolvedConfig;
325325

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

Diff for: clients/client-accessanalyzer/runtimeConfig.browser.ts

+25-21
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,33 @@ import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser";
88
import { calculateBodyLength } from "@aws-sdk/util-body-length-browser";
99
import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser";
1010
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser";
11-
import { ClientDefaults } from "./AccessAnalyzerClient";
12-
import { ClientSharedValues } from "./runtimeConfig.shared";
11+
import { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
12+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1313

1414
/**
1515
* @internal
1616
*/
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,
17+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => {
18+
const clientSharedValues = getSharedRuntimeConfig(config);
19+
return {
20+
...clientSharedValues,
21+
...config,
22+
runtime: "browser",
23+
base64Decoder: config.base64Decoder ?? fromBase64,
24+
base64Encoder: config.base64Encoder ?? toBase64,
25+
bodyLengthChecker: config.bodyLengthChecker ?? calculateBodyLength,
26+
credentialDefaultProvider:
27+
config.credentialDefaultProvider ?? ((_: unknown) => () => Promise.reject(new Error("Credential is missing"))),
28+
defaultUserAgentProvider:
29+
config.defaultUserAgentProvider ??
30+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
31+
maxAttempts: config.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
32+
region: config.region ?? invalidProvider("Region is missing"),
33+
requestHandler: config.requestHandler ?? new FetchHttpHandler(),
34+
retryModeProvider: config.retryModeProvider ?? (() => Promise.resolve(DEFAULT_RETRY_MODE)),
35+
sha256: config.sha256 ?? Sha256,
36+
streamCollector: config.streamCollector ?? streamCollector,
37+
utf8Decoder: config.utf8Decoder ?? fromUtf8,
38+
utf8Encoder: config.utf8Encoder ?? toUtf8,
39+
};
3640
};
+10-6
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 { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
3+
import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser";
44

55
/**
66
* @internal
77
*/
8-
export const ClientDefaultValues: Required<ClientDefaults> = {
9-
...BrowserDefaults,
10-
runtime: "react-native",
11-
sha256: Sha256,
8+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => {
9+
const browserDefaults = getBrowserRuntimeConfig(config);
10+
return {
11+
...browserDefaults,
12+
...config,
13+
runtime: "react-native",
14+
sha256: config.sha256 ?? Sha256,
15+
};
1216
};
+8-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { defaultRegionInfoProvider } from "./endpoints";
22
import { Logger as __Logger } from "@aws-sdk/types";
33
import { parseUrl } from "@aws-sdk/url-parser";
4+
import { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
45

56
/**
67
* @internal
78
*/
8-
export const ClientSharedValues = {
9+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => ({
910
apiVersion: "2019-11-01",
10-
disableHostPrefix: false,
11-
logger: {} as __Logger,
12-
regionInfoProvider: defaultRegionInfoProvider,
13-
serviceId: "AccessAnalyzer",
14-
urlParser: parseUrl,
15-
};
11+
disableHostPrefix: config.disableHostPrefix ?? false,
12+
logger: config.logger ?? ({} as __Logger),
13+
regionInfoProvider: config.regionInfoProvider ?? defaultRegionInfoProvider,
14+
serviceId: config.serviceId ?? "AccessAnalyzer",
15+
urlParser: config.urlParser ?? parseUrl,
16+
});

Diff for: clients/client-accessanalyzer/runtimeConfig.ts

+25-21
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,33 @@ import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node";
1111
import { calculateBodyLength } from "@aws-sdk/util-body-length-node";
1212
import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
1313
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node";
14-
import { ClientDefaults } from "./AccessAnalyzerClient";
15-
import { ClientSharedValues } from "./runtimeConfig.shared";
14+
import { AccessAnalyzerClientConfig } from "./AccessAnalyzerClient";
15+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1616

1717
/**
1818
* @internal
1919
*/
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,
20+
export const getRuntimeConfig = (config: AccessAnalyzerClientConfig) => {
21+
const clientSharedValues = getSharedRuntimeConfig(config);
22+
return {
23+
...clientSharedValues,
24+
...config,
25+
runtime: "node",
26+
base64Decoder: config.base64Decoder ?? fromBase64,
27+
base64Encoder: config.base64Encoder ?? toBase64,
28+
bodyLengthChecker: config.bodyLengthChecker ?? calculateBodyLength,
29+
credentialDefaultProvider:
30+
config.credentialDefaultProvider ?? decorateDefaultCredentialProvider(credentialDefaultProvider),
31+
defaultUserAgentProvider:
32+
config.defaultUserAgentProvider ??
33+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
34+
maxAttempts: config.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
35+
region: config.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS),
36+
requestHandler: config.requestHandler ?? new NodeHttpHandler(),
37+
retryModeProvider: config.retryModeProvider ?? loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS),
38+
sha256: config.sha256 ?? Hash.bind(null, "sha256"),
39+
streamCollector: config.streamCollector ?? streamCollector,
40+
utf8Decoder: config.utf8Decoder ?? fromUtf8,
41+
utf8Encoder: config.utf8Encoder ?? toUtf8,
42+
};
3943
};

Diff for: clients/client-acm-pca/ACMPCAClient.ts

+2-5
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,
@@ -328,10 +328,7 @@ export class ACMPCAClient extends __Client<
328328
readonly config: ACMPCAClientResolvedConfig;
329329

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

Diff for: clients/client-acm-pca/runtimeConfig.browser.ts

+25-21
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,33 @@ import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser";
88
import { calculateBodyLength } from "@aws-sdk/util-body-length-browser";
99
import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser";
1010
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser";
11-
import { ClientDefaults } from "./ACMPCAClient";
12-
import { ClientSharedValues } from "./runtimeConfig.shared";
11+
import { ACMPCAClientConfig } from "./ACMPCAClient";
12+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1313

1414
/**
1515
* @internal
1616
*/
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,
17+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => {
18+
const clientSharedValues = getSharedRuntimeConfig(config);
19+
return {
20+
...clientSharedValues,
21+
...config,
22+
runtime: "browser",
23+
base64Decoder: config.base64Decoder ?? fromBase64,
24+
base64Encoder: config.base64Encoder ?? toBase64,
25+
bodyLengthChecker: config.bodyLengthChecker ?? calculateBodyLength,
26+
credentialDefaultProvider:
27+
config.credentialDefaultProvider ?? ((_: unknown) => () => Promise.reject(new Error("Credential is missing"))),
28+
defaultUserAgentProvider:
29+
config.defaultUserAgentProvider ??
30+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
31+
maxAttempts: config.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
32+
region: config.region ?? invalidProvider("Region is missing"),
33+
requestHandler: config.requestHandler ?? new FetchHttpHandler(),
34+
retryModeProvider: config.retryModeProvider ?? (() => Promise.resolve(DEFAULT_RETRY_MODE)),
35+
sha256: config.sha256 ?? Sha256,
36+
streamCollector: config.streamCollector ?? streamCollector,
37+
utf8Decoder: config.utf8Decoder ?? fromUtf8,
38+
utf8Encoder: config.utf8Encoder ?? toUtf8,
39+
};
3640
};

Diff for: clients/client-acm-pca/runtimeConfig.native.ts

+10-6
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 { ACMPCAClientConfig } from "./ACMPCAClient";
3+
import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser";
44

55
/**
66
* @internal
77
*/
8-
export const ClientDefaultValues: Required<ClientDefaults> = {
9-
...BrowserDefaults,
10-
runtime: "react-native",
11-
sha256: Sha256,
8+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => {
9+
const browserDefaults = getBrowserRuntimeConfig(config);
10+
return {
11+
...browserDefaults,
12+
...config,
13+
runtime: "react-native",
14+
sha256: config.sha256 ?? Sha256,
15+
};
1216
};

Diff for: clients/client-acm-pca/runtimeConfig.shared.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { defaultRegionInfoProvider } from "./endpoints";
22
import { Logger as __Logger } from "@aws-sdk/types";
33
import { parseUrl } from "@aws-sdk/url-parser";
4+
import { ACMPCAClientConfig } from "./ACMPCAClient";
45

56
/**
67
* @internal
78
*/
8-
export const ClientSharedValues = {
9+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => ({
910
apiVersion: "2017-08-22",
10-
disableHostPrefix: false,
11-
logger: {} as __Logger,
12-
regionInfoProvider: defaultRegionInfoProvider,
13-
serviceId: "ACM PCA",
14-
urlParser: parseUrl,
15-
};
11+
disableHostPrefix: config.disableHostPrefix ?? false,
12+
logger: config.logger ?? ({} as __Logger),
13+
regionInfoProvider: config.regionInfoProvider ?? defaultRegionInfoProvider,
14+
serviceId: config.serviceId ?? "ACM PCA",
15+
urlParser: config.urlParser ?? parseUrl,
16+
});

Diff for: clients/client-acm-pca/runtimeConfig.ts

+25-21
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,33 @@ import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node";
1111
import { calculateBodyLength } from "@aws-sdk/util-body-length-node";
1212
import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
1313
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node";
14-
import { ClientDefaults } from "./ACMPCAClient";
15-
import { ClientSharedValues } from "./runtimeConfig.shared";
14+
import { ACMPCAClientConfig } from "./ACMPCAClient";
15+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1616

1717
/**
1818
* @internal
1919
*/
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,
20+
export const getRuntimeConfig = (config: ACMPCAClientConfig) => {
21+
const clientSharedValues = getSharedRuntimeConfig(config);
22+
return {
23+
...clientSharedValues,
24+
...config,
25+
runtime: "node",
26+
base64Decoder: config.base64Decoder ?? fromBase64,
27+
base64Encoder: config.base64Encoder ?? toBase64,
28+
bodyLengthChecker: config.bodyLengthChecker ?? calculateBodyLength,
29+
credentialDefaultProvider:
30+
config.credentialDefaultProvider ?? decorateDefaultCredentialProvider(credentialDefaultProvider),
31+
defaultUserAgentProvider:
32+
config.defaultUserAgentProvider ??
33+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
34+
maxAttempts: config.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
35+
region: config.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS),
36+
requestHandler: config.requestHandler ?? new NodeHttpHandler(),
37+
retryModeProvider: config.retryModeProvider ?? loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS),
38+
sha256: config.sha256 ?? Hash.bind(null, "sha256"),
39+
streamCollector: config.streamCollector ?? streamCollector,
40+
utf8Decoder: config.utf8Decoder ?? fromUtf8,
41+
utf8Encoder: config.utf8Encoder ?? toUtf8,
42+
};
3943
};

Diff for: clients/client-acm/ACMClient.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import {
3737
UpdateCertificateOptionsCommandInput,
3838
UpdateCertificateOptionsCommandOutput,
3939
} from "./commands/UpdateCertificateOptionsCommand";
40-
import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig";
40+
import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";
4141
import {
4242
EndpointsInputConfig,
4343
EndpointsResolvedConfig,
@@ -279,10 +279,7 @@ export class ACMClient extends __Client<
279279
readonly config: ACMClientResolvedConfig;
280280

281281
constructor(configuration: ACMClientConfig) {
282-
let _config_0 = {
283-
...__ClientDefaultValues,
284-
...configuration,
285-
};
282+
let _config_0 = __getRuntimeConfig(configuration);
286283
let _config_1 = resolveRegionConfig(_config_0);
287284
let _config_2 = resolveEndpointsConfig(_config_1);
288285
let _config_3 = resolveRetryConfig(_config_2);

0 commit comments

Comments
 (0)