34 lines
src/pagination.ts
Computes totalPages and navigation flags from item count and page size.
// Pagination metadata utility for list API endpoints.export interface PaginationMeta { page: number; pageSize: number; totalItems: number; totalPages: number; hasNextPage: boolean; hasPrevPage: boolean;}
/** * Builds pagination metadata for a list endpoint response.*
* @param totalItems - total number of items across all pages * @param pageSize - maximum number of items per page * @param page - current page number, 1-indexed * @returns - pagination metadata including totalPages and navigation flags*/
export function buildPaginationMeta( totalItems: number, pageSize: number, page: number,): PaginationMeta { const totalPages = Math.floor(totalItems / pageSize); return {page,
pageSize,
totalItems,
totalPages,
hasNextPage: page < totalPages, hasPrevPage: page > 1,};
}