@aws-sdk/client-dynamodb
Version:
AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native
42 lines (41 loc) • 2.09 kB
JavaScript
const { AwsSdkSigV4Signer } = require("@aws-sdk/core/httpAuthSchemes");
const { AwsJson1_0Protocol } = require("@aws-sdk/core/protocols");
const { DynamoDBJsonCodec } = require("@aws-sdk/dynamodb-codec");
const { NoOpLogger } = require("@smithy/core/client");
const { parseUrl } = require("@smithy/core/protocols");
const { fromBase64, fromUtf8, toBase64, toUtf8 } = require("@smithy/core/serde");
const { defaultDynamoDBHttpAuthSchemeProvider } = require("./auth/httpAuthSchemeProvider");
const { defaultEndpointResolver } = require("./endpoint/endpointResolver");
const { errorTypeRegistries } = require("./schemas/schemas_0");
exports.getRuntimeConfig = (config) => {
return {
apiVersion: "2012-08-10",
base64Decoder: config?.base64Decoder ?? fromBase64,
base64Encoder: config?.base64Encoder ?? toBase64,
disableHostPrefix: config?.disableHostPrefix ?? false,
endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,
extensions: config?.extensions ?? [],
httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultDynamoDBHttpAuthSchemeProvider,
httpAuthSchemes: config?.httpAuthSchemes ?? [
{
schemeId: "aws.auth#sigv4",
identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
signer: new AwsSdkSigV4Signer(),
},
],
logger: config?.logger ?? new NoOpLogger(),
protocol: config?.protocol ?? AwsJson1_0Protocol,
protocolSettings: config?.protocolSettings ?? {
defaultNamespace: "com.amazonaws.dynamodb",
errorTypeRegistries,
xmlNamespace: "http://dynamodb.amazonaws.com/doc/2012-08-10/",
version: "2012-08-10",
serviceTarget: "DynamoDB_20120810",
jsonCodec: new DynamoDBJsonCodec(),
},
serviceId: config?.serviceId ?? "DynamoDB",
urlParser: config?.urlParser ?? parseUrl,
utf8Decoder: config?.utf8Decoder ?? fromUtf8,
utf8Encoder: config?.utf8Encoder ?? toUtf8,
};
};