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