UNPKG

arrow-store

Version:
28 lines (27 loc) 2.55 kB
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>; }