@aws-sdk/client-dynamodb
Version:
AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native
36 lines (35 loc) • 2.6 kB
JavaScript
const packageInfo = require("../package.json");
const { Sha256 } = require("@aws-crypto/sha256-browser");
const { DEFAULT_ACCOUNT_ID_ENDPOINT_MODE } = require("@aws-sdk/core/account-id-endpoint");
const { createDefaultUserAgentProvider } = require("@aws-sdk/core/client");
const { invalidProvider, loadConfigsForDefaultMode } = require("@smithy/core/client");
const { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT, resolveDefaultsModeConfig } = require("@smithy/core/config");
const { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, Retry } = require("@smithy/core/retry");
const { calculateBodyLength } = require("@smithy/core/serde");
const { FetchHttpHandler: RequestHandler, streamCollector } = require("@smithy/fetch-http-handler");
const { getRuntimeConfig: getSharedRuntimeConfig } = require("./runtimeConfig.shared");
const getRuntimeConfig = (config) => {
const defaultsMode = resolveDefaultsModeConfig(config);
const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);
const clientSharedValues = getSharedRuntimeConfig(config);
return {
...clientSharedValues,
...config,
runtime: "browser",
defaultsMode,
accountIdEndpointMode: config?.accountIdEndpointMode ?? (() => Promise.resolve(DEFAULT_ACCOUNT_ID_ENDPOINT_MODE)),
bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,
credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error("Credential is missing"))),
defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
endpointDiscoveryEnabledProvider: config?.endpointDiscoveryEnabledProvider ?? (() => Promise.resolve(undefined)),
maxAttempts: config?.maxAttempts ?? (Retry.v2026 ? 4 : DEFAULT_MAX_ATTEMPTS),
region: config?.region ?? invalidProvider("Region is missing"),
requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),
sha256: config?.sha256 ?? Sha256,
streamCollector: config?.streamCollector ?? streamCollector,
useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),
useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),
};
};
exports.getRuntimeConfig = getRuntimeConfig;