arrow-store
Version:
TypeScript DynamoDB ORM
28 lines (27 loc) • 2.55 kB
TypeScript
import { DynamoDBSchemaProvider } from "../mappers/schemaBuilders";
import { DynamoDBRecordMapper } from "../mappers/recordMapper";
import { DynamoDBClientResolver } from "../client";
import { TransactUpdateItemBuilder } from "./updateBuilder";
import { TransactPutItemBuilder } from "./putBuilder";
import { TransactDeleteItemBuilder } from "./deleteBuilder";
import { ArrowStoreRecord, ArrowStoreRecordId, ArrowStoreTypeRecordId } from "../types";
export declare type TransactWriteBuilder = {
when<TRecord extends ArrowStoreRecord, TContext>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): TransactWriteBuilder;
delete<TRecord extends {}, TContext>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, deleteBuilder?: (query: TransactDeleteItemBuilder<TRecord>) => void): TransactWriteBuilder;
update<TRecord extends {}>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, updateBuilder: (query: TransactUpdateItemBuilder<TRecord>) => void): TransactWriteBuilder;
put<TRecord extends ArrowStoreRecord, TContext>(record: TRecord, putBuilder?: (query: TransactPutItemBuilder<TRecord>) => void): TransactWriteBuilder;
executeAsync(): Promise<boolean>;
};
export declare class DynamoDBTransactWriteItemBuilder implements TransactWriteBuilder {
private readonly _schemaProvider;
private readonly _recordMapper;
private readonly _clientResolver;
private readonly _clientRequestToken;
private readonly _transactWriteItems;
constructor(schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper, clientResolver: DynamoDBClientResolver, clientRequestToken?: string);
when<TRecord extends {}, TContext>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): TransactWriteBuilder;
delete<TRecord extends {}, TContext>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, deleteBuilder?: (query: TransactDeleteItemBuilder<TRecord>) => void): TransactWriteBuilder;
update<TRecord extends {}>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, updateBuilder: (query: TransactUpdateItemBuilder<TRecord>) => void): TransactWriteBuilder;
put<TRecord extends ArrowStoreRecord, TContext>(record: TRecord, putBuilder?: (query: TransactPutItemBuilder<TRecord>) => void): TransactWriteBuilder;
executeAsync(): Promise<boolean>;
}