UNPKG

@adocasts.com/dto

Version:

Easily make and generate DTOs from Lucid Models

29 lines (28 loc) 1.27 kB
export default class SimplePaginatorDto { /** * Constructs a new instance of the SimplePaginatorDto class. * * @param {SimplePaginatorContract<Model>|ModelPaginatorContract<Model>} paginator - The paginator object containing the data. * @param {StaticDto<Model, Dto>} dto - The static DTO class used to map the data. * @param {SimplePaginatorDtoMetaRange} [range] - Optional range for the paginator. */ constructor(paginator, dto, range) { this.data = paginator.all().map((row) => new dto(row)); this.meta = { total: paginator.total, perPage: paginator.perPage, currentPage: paginator.currentPage, lastPage: paginator.lastPage, firstPage: paginator.firstPage, firstPageUrl: paginator.getUrl(1), lastPageUrl: paginator.getUrl(paginator.lastPage), nextPageUrl: paginator.getNextPageUrl(), previousPageUrl: paginator.getPreviousPageUrl(), }; if (range?.start || range?.end) { const start = range?.start || paginator.firstPage; const end = range?.end || paginator.lastPage; this.meta.pagesInRange = paginator.getUrlsForRange(start, end); } } }