arrow-store
Version:
TypeScript DynamoDB ORM
33 lines (32 loc) • 1.91 kB
TypeScript
import { DynamoDBQueryResult } from "../types";
import { DynamoDBSchemaProvider } from "../mappers/schemaBuilders";
import { DynamoDBClientResolver } from "../client";
import { DynamoDBRecordMapper } from "../mappers/recordMapper";
import { WhenExpressionBuilder } from "./batchWriteBuilder";
import { ArrowStoreRecordId, ArrowStoreTypeRecordId } from "../types";
export declare type ListQueryBuilder<TRecord> = {
where<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): ListQueryBuilder<TRecord>;
skipTo(recordId: ArrowStoreRecordId): ListQueryBuilder<TRecord>;
take(takeRecords: number): ListQueryBuilder<TRecord>;
sortByAscending(): ListQueryBuilder<TRecord>;
sortByDescending(): ListQueryBuilder<TRecord>;
listAsync(): Promise<DynamoDBQueryResult<TRecord>>;
};
export declare class DynamoDBListQueryBuilder<TRecord> extends WhenExpressionBuilder<TRecord> implements ListQueryBuilder<TRecord> {
private readonly _recordQuery;
private readonly _clientResolver;
private readonly _filterExpressions;
private _scanIndexFwd;
private _exclusiveStartKey;
private _limit;
constructor(recordQuery: ArrowStoreRecordId | ArrowStoreTypeRecordId<TRecord>, schemaProvider: DynamoDBSchemaProvider, recordMapper: DynamoDBRecordMapper, clientResolver: DynamoDBClientResolver);
where<TContext>(predicate: (record: TRecord, context: TContext) => boolean, context?: TContext): ListQueryBuilder<TRecord>;
skipTo(recordId: ArrowStoreRecordId): ListQueryBuilder<TRecord>;
take(takeRecords: number): ListQueryBuilder<TRecord>;
sortByAscending(): ListQueryBuilder<TRecord>;
sortByDescending(): ListQueryBuilder<TRecord>;
listAsync(): Promise<DynamoDBQueryResult<TRecord>>;
private _fromLastEvaluatedKey;
private _toPrimaryKey;
private static _toQueryKeyExpression;
}