/
githubmirror
/
json-server
Обзор
Документация
Войти
/
githubmirror
/
json-server
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/paginate.ts
38 строк
989 B
typicode
feat: add _where filtering, use new op separator, drop _start, _end, _limit (#1696)
14 фев 2026, 15:34
Не верифицирован
14 фев 2026, 15:34
ada86ac
Код
Авторство
О чём код?
export type PaginationResult<T> = { first: number prev: number | null next: number | null last: number pages: number items: number data: T[] } export function paginate<T>(items: T[], page: number, perPage: number): PaginationResult<T> { const totalItems = items.length const safePerPage = Number.isFinite(perPage) && perPage > 0 ? Math.floor(perPage) : 1 const pages = Math.max(1, Math.ceil(totalItems / safePerPage)) // Ensure page is within the valid range const safePage = Number.isFinite(page) ? Math.floor(page) : 1 const currentPage = Math.max(1, Math.min(safePage, pages)) const first = 1 const prev = currentPage > 1 ? currentPage - 1 : null const next = currentPage < pages ? currentPage + 1 : null const last = pages const start = (currentPage - 1) * safePerPage const end = start + safePerPage const data = items.slice(start, end) return { first, prev, next, last, pages, items: totalItems, data, } }