UNPKG

@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
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; }