diff --git a/helpers/api/pagination.js b/helpers/api/pagination.js index 05e1d36..0100eaf 100644 --- a/helpers/api/pagination.js +++ b/helpers/api/pagination.js @@ -31,12 +31,17 @@ export class PaginatedList { return this.list.slice(start, end) } + hasPage ( pageNumber ) { + return pageNumber > 0 && pageNumber <= this.pageCount + } + makePage ( pageNumber ) { const items = this.makePageItems( pageNumber ) return { number: pageNumber, items, + hasNextPage: this.hasPage( pageNumber + 1 ), get json() { return JSON.stringify( items ) } diff --git a/test/prebuild/index.js b/test/prebuild/index.js index bbac7dd..bd9f3a5 100644 --- a/test/prebuild/index.js +++ b/test/prebuild/index.js @@ -193,11 +193,13 @@ test('Can paginate', async (t) => { pages: [ { number: 1, + hasNextPage: true, items: [1, 2], json: '[1,2]' }, { number: 2, + hasNextPage: true, items: [3, 4], json: '[3,4]' }, @@ -205,6 +207,7 @@ test('Can paginate', async (t) => { // Last page should have less than perPage items { number: 5, + hasNextPage: false, items: [9], json: '[9]' }