@tc-libs/pagination
v3.9.0
Published
Toolkit per query pagination/filter/order/search su endpoint NestJS.
Downloads
482
Readme
@tc-libs/pagination
Toolkit per query pagination/filter/order/search su endpoint NestJS.
Il package contiene:
PaginationModuleePaginationService- decorator parametrici per query string
- pipe per paging, order, search e filtri
- costanti ed enum condivisi
Servizio
PaginationService espone la logica base:
page(),perPage(),offset(),totalPages()order()search()filterEqual(),filterNotEqual(),filterContain(),filterIn(),filterDate()
Esempio:
const page = this.paginationService.page(query.page);
const perPage = this.paginationService.perPage(false, query.perPage);
const offset = this.paginationService.offset(page, perPage);Decorator principali
Il decorator piu utile e PaginationQuery(...):
@Get()
list(
@PaginationQuery(
20,
'createdAt',
ENUM_PAGINATION_ORDER_DIRECTION_TYPE.ASC,
['name', 'email'],
['createdAt', 'name'],
)
query: PaginationListDto,
) {}Il decorator applica automaticamente:
- search pipe
- paging pipe
- order pipe
- select pipe
Sono disponibili anche decorator piu specifici come:
PaginationQueryFilterEqualPaginationQueryFilterContainPaginationQueryFilterDatePaginationQueryFilterInEnumPaginationQueryFilterEqualObjectId
Come si integra con request e response
- i pipe salvano metadati di pagination in
request.__pagination @tc-libs/responseli usa per costruire_metadata.paginatione i cursori@tc-libs/serviceusaPaginationServiceper il metodopaginate()
Sviluppo
nx build pagination
nx test pagination