UNPKG

arrow-store

Version:
42 lines (41 loc) 3.61 kB
import { DynamoDBSchemaProvider } from "../mappers/schemaBuilders"; import { DynamoDBRecordMapper } from "../mappers/recordMapper"; import { DynamoDBClientResolver } from "../client"; import { Update } from "aws-sdk/clients/dynamodb"; import { ArrowStoreRecordId, ArrowStoreTypeRecordId } from "../types"; export declare type TransactUpdateItemBuilder<TRecord extends {}> = { when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): TransactUpdateItemBuilder<TRecord>; set<TContext>(updateExpression: (record: TRecord, context: TContext) => unknown, context?: TContext): TransactUpdateItemBuilder<TRecord>; setWhenNotExists<TContext>(member: (record: TRecord) => unknown, updateExpression: (record: TRecord, context: TContext) => unknown, context?: TContext): TransactUpdateItemBuilder<TRecord>; destroy<TMember>(expression: (record: TRecord) => TMember): TransactUpdateItemBuilder<TRecord>; }; export declare type UpdateBuilder<TRecord extends {}> = { when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): UpdateBuilder<TRecord>; set<TContext>(updateExpression: (record: TRecord, context: TContext) => unknown, context?: TContext): UpdateBuilder<TRecord>; setWhenNotExists<TContext>(member: (record: TRecord) => unknown, updateExpression: (record: TRecord, context: TContext) => unknown, context?: TContext): UpdateBuilder<TRecord>; destroy<TMember>(expression: (record: TRecord) => TMember): UpdateBuilder<TRecord>; executeAsync(): Promise<boolean>; }; export declare class DynamoDBTransactUpdateItemBuilder<TRecord extends {}> implements TransactUpdateItemBuilder<TRecord> { private readonly _recordId; private readonly _recordMapper; private readonly _updateExpressionBuilder; constructor(recordId: ArrowStoreRecordId, schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper); destroy<TMember>(expression: (record: TRecord) => TMember): TransactUpdateItemBuilder<TRecord>; set<TContext>(updateExpression: (record: TRecord, context: TContext) => unknown, context: TContext | undefined): TransactUpdateItemBuilder<TRecord>; setWhenNotExists<TContext>(member: (record: TRecord) => unknown, updateExpression: (record: TRecord, context: TContext) => unknown, context: TContext | undefined): TransactUpdateItemBuilder<TRecord>; when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context: TContext | undefined): TransactUpdateItemBuilder<TRecord>; build(): Update; } export declare class DynamoDBUpdateBuilder<TRecord extends {}> implements UpdateBuilder<TRecord> { private readonly _recordId; private readonly _recordMapper; private readonly _clientResolver; private readonly _updateExpressionBuilder; constructor(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper, clientResolver: DynamoDBClientResolver); when<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): UpdateBuilder<TRecord>; destroy<TMember>(expression: (record: TRecord) => TMember): UpdateBuilder<TRecord>; setWhenNotExists<TContext>(member: (record: TRecord) => unknown, updateExpression: (record: TRecord, context: TContext) => unknown, context?: TContext): UpdateBuilder<TRecord>; set<TContext>(expression: (record: TRecord, context: TContext) => unknown, context?: TContext): UpdateBuilder<TRecord>; executeAsync(): Promise<boolean>; }