typeorm-paginator
Version:
TypeORM query builder pagination library.
22 lines (21 loc) • 1.31 kB
TypeScript
import { SelectQueryBuilder, ObjectType } from 'typeorm';
import { OrderBy, PromisePagePagination, PagePagination, Nullable, Take } from './interfaces/paginator';
export interface PagePaginatorParams<TEntity, TColumnNames extends Record<string, string>> {
columnNames?: TColumnNames | null;
take?: Nullable<Take> | number | null;
orderBy: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[];
}
export interface PagePaginatorPaginateParams<TEntity, TColumnNames extends Record<string, string>> {
page?: number | null;
take?: number | null;
orderBy?: OrderBy<TEntity & TColumnNames> | OrderBy<TEntity & TColumnNames>[];
}
export declare class PagePaginator<TEntity, TColumnNames extends Record<string, string>> {
entity: ObjectType<TEntity>;
orderBy: OrderBy<TEntity> | OrderBy<TEntity>[];
columnNames: Record<string, string>;
takeOptions: Take;
constructor(entity: ObjectType<TEntity>, { orderBy, columnNames, take, }: PagePaginatorParams<TEntity, TColumnNames>);
paginate(qb: SelectQueryBuilder<TEntity>, params?: PagePaginatorPaginateParams<TEntity, TColumnNames>): Promise<PagePagination<TEntity>>;
promisePaginate(qb: SelectQueryBuilder<TEntity>, params?: PagePaginatorPaginateParams<TEntity, TColumnNames>): PromisePagePagination<TEntity>;
}