@amplience/dc-cli
Version:
Dynamic Content CLI Tool
22 lines (21 loc) • 913 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_SIZE = void 0;
exports.DEFAULT_SIZE = 100;
const paginator = async (pagableFn, options = {}, paginatorOptions = {}) => {
const currentPage = await pagableFn({ ...options, size: exports.DEFAULT_SIZE });
if (paginatorOptions === null || paginatorOptions === void 0 ? void 0 : paginatorOptions.onPage) {
paginatorOptions.onPage(currentPage);
}
if (currentPage.page &&
currentPage.page.number !== undefined &&
currentPage.page.totalPages !== undefined &&
currentPage.page.number + 1 < currentPage.page.totalPages) {
return [
...currentPage.getItems(),
...(await paginator(pagableFn, { ...options, page: currentPage.page.number + 1 }, { ...paginatorOptions }))
];
}
return currentPage.getItems();
};
exports.default = paginator;