24 lines
1.1 KiB
JavaScript
24 lines
1.1 KiB
JavaScript
import { normalizeProvider } from "@smithy/util-middleware";
|
|
import { getEndpointFromConfig } from "./adaptors/getEndpointFromConfig";
|
|
import { toEndpointV1 } from "./adaptors/toEndpointV1";
|
|
export const resolveEndpointConfig = (input) => {
|
|
const tls = input.tls ?? true;
|
|
const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input;
|
|
const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;
|
|
const isCustomEndpoint = !!endpoint;
|
|
const resolvedConfig = Object.assign(input, {
|
|
endpoint: customEndpointProvider,
|
|
tls,
|
|
isCustomEndpoint,
|
|
useDualstackEndpoint: normalizeProvider(useDualstackEndpoint ?? false),
|
|
useFipsEndpoint: normalizeProvider(useFipsEndpoint ?? false),
|
|
});
|
|
let configuredEndpointPromise = undefined;
|
|
resolvedConfig.serviceConfiguredEndpoint = async () => {
|
|
if (input.serviceId && !configuredEndpointPromise) {
|
|
configuredEndpointPromise = getEndpointFromConfig(input.serviceId);
|
|
}
|
|
return configuredEndpointPromise;
|
|
};
|
|
return resolvedConfig;
|
|
};
|