lemon-core
Version:
Lemon Serverless Micro-Service Platform
58 lines (57 loc) • 2.12 kB
TypeScript
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;
}