37 lines
1.7 KiB
JavaScript
37 lines
1.7 KiB
JavaScript
|
import { AwsSdkSigV4Signer } from "@aws-sdk/core";
|
||
|
import { NoAuthSigner } from "@smithy/core";
|
||
|
import { NoOpLogger } from "@smithy/smithy-client";
|
||
|
import { parseUrl } from "@smithy/url-parser";
|
||
|
import { fromBase64, toBase64 } from "@smithy/util-base64";
|
||
|
import { fromUtf8, toUtf8 } from "@smithy/util-utf8";
|
||
|
import { defaultSSOOIDCHttpAuthSchemeProvider } from "./auth/httpAuthSchemeProvider";
|
||
|
import { defaultEndpointResolver } from "./endpoint/endpointResolver";
|
||
|
export const getRuntimeConfig = (config) => {
|
||
|
return {
|
||
|
apiVersion: "2019-06-10",
|
||
|
base64Decoder: config?.base64Decoder ?? fromBase64,
|
||
|
base64Encoder: config?.base64Encoder ?? toBase64,
|
||
|
disableHostPrefix: config?.disableHostPrefix ?? false,
|
||
|
endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,
|
||
|
extensions: config?.extensions ?? [],
|
||
|
httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultSSOOIDCHttpAuthSchemeProvider,
|
||
|
httpAuthSchemes: config?.httpAuthSchemes ?? [
|
||
|
{
|
||
|
schemeId: "aws.auth#sigv4",
|
||
|
identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
|
||
|
signer: new AwsSdkSigV4Signer(),
|
||
|
},
|
||
|
{
|
||
|
schemeId: "smithy.api#noAuth",
|
||
|
identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})),
|
||
|
signer: new NoAuthSigner(),
|
||
|
},
|
||
|
],
|
||
|
logger: config?.logger ?? new NoOpLogger(),
|
||
|
serviceId: config?.serviceId ?? "SSO OIDC",
|
||
|
urlParser: config?.urlParser ?? parseUrl,
|
||
|
utf8Decoder: config?.utf8Decoder ?? fromUtf8,
|
||
|
utf8Encoder: config?.utf8Encoder ?? toUtf8,
|
||
|
};
|
||
|
};
|