25 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 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;
 | 
						|
};
 |