typeorm-paginator
Version:
TypeORM query builder pagination library.
45 lines (44 loc) • 1.31 kB
TypeScript
export declare type Nullable<T> = {
[P in keyof T]?: T[P] | null;
};
export interface Take {
default: number;
min: number;
max: number;
}
export declare type OrderBy<TEntity> = {
[TKey in keyof TEntity]?: boolean;
};
export declare type Cursor<TEntity> = {
[TKey in keyof TEntity]?: any;
};
export interface CursorPagination<TEntity> {
readonly count: number;
readonly nodes: TEntity[];
readonly hasPrev: boolean;
readonly hasNext: boolean;
readonly prevCursor: string | null;
readonly nextCursor: string | null;
}
export interface PromiseCursorPagination<TEntity> {
readonly count: Promise<number>;
readonly nodes: Promise<TEntity[]>;
readonly hasPrev: Promise<boolean>;
readonly hasNext: Promise<boolean>;
readonly prevCursor: Promise<string | null>;
readonly nextCursor: Promise<string | null>;
}
export interface CursorTransformer<TEntity> {
parse(text: string): Cursor<TEntity>;
stringify(cursor: Cursor<TEntity>): string;
}
export interface PagePagination<TEntity> {
readonly count: number;
readonly nodes: TEntity[];
readonly hasNext: boolean;
}
export interface PromisePagePagination<TEntity> {
readonly count: Promise<number>;
readonly nodes: Promise<TEntity[]>;
readonly hasNext: Promise<boolean>;
}