diff --git a/__tests__/search/kiwi-page.t.ts b/__tests__/search/kiwi-page.t.ts index 14c7ec9..da184df 100644 --- a/__tests__/search/kiwi-page.t.ts +++ b/__tests__/search/kiwi-page.t.ts @@ -56,6 +56,15 @@ describe('KiwiPage', () => { }); }); + describe('addSupplementaryData', () => { + it('should set the supplementary data on the KiwiPage', () => { + const page = KiwiPage.of(10, 1, 100, []); + page.addSupplementaryData({ aggregations: {} }); + + expect(page.supplementaryData).toEqual({ aggregations: {}}); + }); + }); + describe('usingZeroAsFirstPage', () => { it('should set pagingStartsWith to zero', () => { const page = KiwiPage.of(10, 1, 100, []); diff --git a/src/search/kiwi-page.ts b/src/search/kiwi-page.ts index c96da2c..56ccb98 100644 --- a/src/search/kiwi-page.ts +++ b/src/search/kiwi-page.ts @@ -53,6 +53,11 @@ export class KiwiPage { */ pagingStartsWith: number = 0; + /** + * Optional extra supplementary data related to the page + */ + supplementaryData: object = {}; + constructor(content: object[], size: number, number: number, numberOfElements: number, totalPages: number, totalElements: number, sort: KiwiSort) { this.content = content; this.size = size; @@ -99,4 +104,9 @@ export class KiwiPage { isSorted(): boolean { return this.sort !== undefined && this.sort !== null; } + + addSupplementaryData(supplementaryData: object): this { + this.supplementaryData = supplementaryData; + return this; + } }