@blogcode/nest-typeorm-pagination
Version:
Pagination offset-based and cursor-based for NestJS
33 lines (32 loc) • 1.41 kB
TypeScript
import { DataSource, ObjectLiteral, Repository } from "typeorm";
import { PaginationCursorResult, PaginationOffsetResult } from "./types";
import { PaginationCursorDto, PaginationOffsetDto } from "./dto";
export declare class PaginationService {
private readonly dataSource;
private filterMapping;
private defaultLimit;
private maxLimit;
private entityName;
private resultName;
private primaryKey;
constructor(dataSource: DataSource);
setFilterMapping(mapping: Record<string, string>): this;
setDefaultLimit(limit: number): this;
setMaxLimit(limit: number): this;
setEntityName(name: string): this;
setResultName(name: string): this;
setPrimaryKey(key: string): this;
private getOperator;
private getLimit;
private parseValue;
private genCondition;
private getWrapper;
private normalize;
private genFullTextSearch;
private applyFilterCondition;
private applyFilters;
private applyOrder;
offset<T extends ObjectLiteral, K extends string = string>(repository: Repository<T>, dto: PaginationOffsetDto): Promise<PaginationOffsetResult<K, T>>;
cursor<T extends ObjectLiteral, K extends string = string>(repository: Repository<T>, dto: PaginationCursorDto): Promise<PaginationCursorResult<K, T>>;
getCursorTotal<T extends ObjectLiteral>(repository: Repository<T>, dto: PaginationCursorDto): Promise<number>;
}