dynabridge
Version:
Simple and light-weight TypeScript entity-focused wrapper for DynamoDB
34 lines (33 loc) • 1.82 kB
TypeScript
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>;