@mcma/aws-dynamodb
Version:
Node module with code for using DynamoDB as the backing data storage for MCMA API handlers and workers.
22 lines (21 loc) • 1.54 kB
TypeScript
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { NativeAttributeValue } from "@aws-sdk/util-dynamodb";
import { CustomQuery, CustomQueryParameters, Document, DocumentDatabaseMutex, DocumentDatabaseTable, MutexProperties, Query, QueryResults } from "@mcma/data";
import { DynamoDbTableOptions } from "./dynamo-db-table-options";
import { DynamoDbTableDescription } from "./dynamo-db-table-description";
export declare function keyFromBase64Json(str: string): Record<string, NativeAttributeValue>;
export declare function base64JsonFromKey(key: Record<string, NativeAttributeValue>): string;
export declare class DynamoDbTable implements DocumentDatabaseTable {
private tableDescription;
private options?;
private readonly docClient;
constructor(dynamoDBClient: DynamoDBClient, tableDescription: DynamoDbTableDescription, options?: DynamoDbTableOptions);
private serialize;
private deserialize;
query<TDocument extends Document = Document>(query: Query<TDocument>): Promise<QueryResults<TDocument>>;
customQuery<TDocument extends Document = Document, TParameters extends CustomQueryParameters = CustomQueryParameters>(query: CustomQuery<TDocument, TParameters>): Promise<QueryResults<TDocument>>;
get<TDocument extends Document = Document>(id: string): Promise<TDocument>;
put<TDocument extends Document = Document>(id: string, resource: TDocument): Promise<TDocument>;
delete(id: string): Promise<void>;
createMutex(mutexProperties: MutexProperties): DocumentDatabaseMutex;
}