diff --git a/module/utils/pagination.mjs b/module/utils/pagination.mjs new file mode 100644 index 0000000..cbca3c8 --- /dev/null +++ b/module/utils/pagination.mjs @@ -0,0 +1,13 @@ +export function paginate(data, page, pageSize) { + const pageStart = pageSize * Math.max(0, page - 1); + const pageEnd = pageSize * page; + const pageData = data.slice(pageStart, pageEnd); + const partialPage = (data.length % pageSize) !== 0; + const total = Math.floor(data.length / pageSize) + (partialPage ? 1 : 0); + return { + page: pageData, + total, + prev: page > 1, + next: pageEnd < data.length, + }; +};