UNPKG

dynabridge

Version:

Simple and light-weight TypeScript entity-focused wrapper for DynamoDB

34 lines (33 loc) 1.82 kB
import { DynamoDBClient } from '@aws-sdk/client-dynamodb'; import { TransactWriteCommandInput, NativeAttributeValue } from '@aws-sdk/lib-dynamodb'; export declare const getItem: <T>(ddbClient: DynamoDBClient, tableName: string, key: object) => Promise<{ entity: T; version: number; } | undefined>; export declare const putItem: <T extends Record<string, any>>(ddbClient: DynamoDBClient, tableName: string, version: number, entity: T) => Promise<void>; export declare const getBatchItem: <T>(ddbClient: DynamoDBClient, tableName: string, keys: object[]) => Promise<{ entity: T; version: number; }[]>; export declare const writeBatchItem: <T extends Record<string, any>>(ddbClient: DynamoDBClient, tableName: string, version: number, entities: T[]) => Promise<void>; export declare const deleteBatchItem: <T extends Record<string, any>>(ddbClient: DynamoDBClient, tableName: string, keys: object[]) => Promise<void>; export type QueryInput = { TableName: string; IndexName?: string; KeyConditionExpression: string; FilterExpression?: string; ExpressionAttributeNames?: Record<string, string>; ExpressionAttributeValues?: Record<string, NativeAttributeValue>; ScanIndexForward?: boolean; ExclusiveStartKey?: Record<string, NativeAttributeValue>; }; export declare function query<T>(ddbClient: DynamoDBClient, queryParams: QueryInput): Promise<{ entity: T; version: number; }[]>; export declare const scan: <T>(ddbClient: DynamoDBClient, tableName: string) => Promise<{ entity: T; version: number; }[]>; export declare const transactWrite: <T>(ddbClient: DynamoDBClient, transactItems: TransactWriteCommandInput['TransactItems']) => Promise<void>; export declare const deleteItem: <T>(ddbClient: DynamoDBClient, tableName: string, key: object) => Promise<void>;