UNPKG

arrow-store

Version:
42 lines (41 loc) 2.81 kB
import { ArrowStoreRecord, ArrowStoreRecordId, ArrowStoreTypeRecordId } from "./types"; import { DynamoDBRecordMapper } from "./mappers/recordMapper"; import { DynamoDBSchemaProvider } from "./mappers/schemaBuilders"; import { ListQueryBuilder } from "./builders/listQueryBuilder"; import { DeleteBuilder } from "./builders/deleteBuilder"; import { PutBuilder } from "./builders/putBuilder"; import { UpdateBuilder } from "./builders/updateBuilder"; import { BatchWriteBuilder } from "./builders/batchWriteBuilder"; import { TransactWriteBuilder } from "./builders/transactWriteBuilder"; import { DynamoDB } from "aws-sdk"; export declare type DynamoDBClientResolver = { resolve(): DynamoDB; }; export declare type DynamoDBClient = { getAsync<TRecord>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): Promise<TRecord | null>; batchGetAsync(recordIds: ArrowStoreRecordId[]): Promise<{}[]>; transactGetItemsAsync(recordIds: ArrowStoreRecordId[]): Promise<{}[]>; query<TRecord>(query: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): ListQueryBuilder<TRecord>; delete<TRecord>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): DeleteBuilder<TRecord>; put<TRecord extends ArrowStoreRecord>(record: TRecord): PutBuilder<TRecord>; update<TRecord>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): UpdateBuilder<TRecord>; batchWriteAsync(builder: (query: BatchWriteBuilder) => void): Promise<void>; transactWriteItems(clientRequestToken?: string): TransactWriteBuilder; }; export declare class DefaultDynamoDBClient implements DynamoDBClient { private readonly _clientResolver; private readonly _schemaProvider; private readonly _recordMapper; constructor(clientResolver: DynamoDBClientResolver, schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper); getAsync<TRecord>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): Promise<TRecord | null>; batchGetAsync(recordIds: ArrowStoreRecordId[]): Promise<{}[]>; transactGetItemsAsync(recordIds: ArrowStoreRecordId[]): Promise<{}[]>; query<TRecord>(query: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): ListQueryBuilder<TRecord>; delete<TRecord>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): DeleteBuilder<TRecord>; put<TRecord extends ArrowStoreRecord>(record: TRecord): PutBuilder<TRecord>; update<TRecord>(recordId: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>): UpdateBuilder<TRecord>; batchWriteAsync(builder: (query: BatchWriteBuilder) => void): Promise<void>; transactWriteItems(clientRequestToken?: string): TransactWriteBuilder; private static _toRecordIdHash; private static _findRecordType; }