/**
* DynamoDB Document Client — Shared Singleton
* Returns a DynamoDBDocumentClient configured from environment.
* In Lambda, the AWS SDK is available in the runtime.
*/
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
let docClient: DynamoDBDocumentClient | undefined;
export function getDocClient(): DynamoDBDocumentClient {
if (!docClient) {
const client = new DynamoDBClient({});
docClient = DynamoDBDocumentClient.from(client, {
marshallOptions: {
removeUndefinedValues: true,
convertClassInstanceToMap: true,
},
});
}
return docClient;
}
/** Allow injection for testing. */
export function setDocClient(client: DynamoDBDocumentClient): void {
docClient = client;
}