UNPKG

lemon-core

Version:
58 lines (57 loc) 2.12 kB
import { GeneralItem } from 'lemon-model'; import { DynamoOption } from './dynamo-service'; /** * class: QueryResult * - result information of query. */ export interface DynamoQueryResult<T> { list: T[]; count?: number; last?: number; } /** * feature: `DynamoSimpleQueriable` * - simple query capable class. */ export interface DynamoSimpleQueriable<T extends GeneralItem> { /** * simple range query by `partition-key` w/ limit. * * @param pkey value of partition-key */ queryAll(pkey: string, limit?: number, isDesc?: boolean): Promise<DynamoQueryResult<T>>; /** * simple range query by `partition-key` and `range: sort-key` w/ limit. * * @param pkey value of partition-key * @param from range start (included) * @param to range end (included) * @param limit limit of page * @param last the last evaluated key (as sort-key) */ queryRange(pkey: string, from: number, to: number, limit?: number, last?: number): Promise<DynamoQueryResult<T>>; } /** * class: `DynamoQueryService` * - support simple query like range search. */ export declare class DynamoQueryService<T extends GeneralItem> implements DynamoSimpleQueriable<T> { protected options: DynamoOption; constructor(options: DynamoOption); /** * say hello of identity. */ hello: () => string; queryAll(pkey: string, limit?: number, isDesc?: boolean): Promise<DynamoQueryResult<T>>; queryRange(pkey: string, from: number, to: number, limit?: number, last?: number): Promise<DynamoQueryResult<T>>; /** * query by range of sort-key. * NOTE - `dynamodb`의 일부 코드를 이용하여, 간단버전으로 지원함. */ queryRangeBy(pkey: string, from: number, to: number, limit?: number, last?: number, isDesc?: boolean): Promise<DynamoQueryResult<T>>; /** * query by range of sort-key. * NOTE - `dynamodb`의 일부 코드를 이용하여, 간단버전으로 지원함. */ buildQuery(pkey: string, from: number, to: number, limit?: number, last?: number, isDesc?: boolean): any; }