arrow-store
Version:
TypeScript DynamoDB ORM
35 lines (34 loc) • 2.06 kB
TypeScript
import { AttributeValue, BatchWriteItemRequestMap } from "aws-sdk/clients/dynamodb";
import { ExpressionAttribute, ExpressionTransformer } from "../transformers/expressionTransformer";
import { DynamoDBSchemaProvider } from "../mappers/schemaBuilders";
import { DynamoDBRecordMapper } from "../mappers/recordMapper";
import { ArrowStoreRecord, ArrowStoreRecordId, ArrowStoreTypeRecordId } from "../types";
export declare type BatchWriteBuilder = {
put<TRecord extends ArrowStoreRecord>(record: TRecord): BatchWriteBuilder;
delete(recordId: ArrowStoreRecordId): BatchWriteBuilder;
};
export declare class WhenExpressionBuilder<TRecord> {
protected readonly _recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>;
protected readonly _schemaProvider: DynamoDBSchemaProvider;
protected readonly _recordMapper: DynamoDBRecordMapper;
protected readonly _conditionFilterTransformer: ExpressionTransformer;
private readonly _attributeNames;
private readonly _attributeValues;
private readonly _attributeNameAliases;
private readonly _attributeValueAliases;
constructor(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper);
get attributeNames(): Map<string, string>;
get attributeNameAliases(): Map<string, ExpressionAttribute>;
get attributeValueAliases(): Map<string, string>;
get attributeValues(): Map<string, AttributeValue>;
toWhereExpression<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context: TContext | undefined): string;
}
export declare class DynamoDBBatchWriteBuilder implements BatchWriteBuilder {
private readonly _recordMapper;
private readonly _requests;
constructor(recordMapper: DynamoDBRecordMapper);
buildRequests(): BatchWriteItemRequestMap;
delete(recordId: ArrowStoreRecordId): BatchWriteBuilder;
put<TRecord extends ArrowStoreRecord>(record: TRecord): BatchWriteBuilder;
private _getTableGroup;
}