arrow-store
Version:
TypeScript DynamoDB ORM
29 lines (28 loc) • 1.9 kB
TypeScript
import { ArrowStoreRecord } from "../types";
import { DynamoDBSchemaProvider } from "../mappers/schemaBuilders";
import { DynamoDBRecordMapper } from "../mappers/recordMapper";
import { WhenExpressionBuilder } from "./batchWriteBuilder";
import { Put } from "aws-sdk/clients/dynamodb";
import { DynamoDBClientResolver } from "../client";
export declare type PutBuilder<TRecord extends ArrowStoreRecord> = {
when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): PutBuilder<TRecord>;
executeAsync(): Promise<boolean>;
};
export declare type TransactPutItemBuilder<TRecord extends ArrowStoreRecord> = {
when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): TransactPutItemBuilder<TRecord>;
};
export declare class DynamoDBTransactPutItemBuilder<TRecord extends ArrowStoreRecord> extends WhenExpressionBuilder<TRecord> implements TransactPutItemBuilder<TRecord> {
private readonly _record;
private readonly _conditionExpressions;
constructor(record: TRecord, schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper);
when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context: TContext | undefined): TransactPutItemBuilder<TRecord>;
build(): Put;
}
export declare class DynamoDBPutBuilder<TRecord extends ArrowStoreRecord> extends WhenExpressionBuilder<TRecord> implements PutBuilder<TRecord> {
private readonly _record;
private readonly _clientResolver;
private readonly _conditionExpressions;
constructor(record: TRecord, schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper, clientResolver: DynamoDBClientResolver);
when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): PutBuilder<TRecord>;
executeAsync(): Promise<boolean>;
}