arrow-store
Version:
TypeScript DynamoDB ORM
42 lines (41 loc) • 3.61 kB
TypeScript
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>;
}