@kfijolek/boardgamegeekclient
Version:
TypeScript client to interact with BoardGameGeek public XML API
24 lines • 978 B
JavaScript
export class RequestPaginator {
constructor(limit = 30) {
this.limit = limit;
}
paginate(request, limit) {
const limitOverride = !limit ? this.limit : limit;
const idArray = Array.from(typeof (request.id) === 'number' ? [request.id] : request.id);
let totalPages = Math.ceil(idArray.length / limitOverride);
const pages = Array.from({ length: totalPages }, (_, i) => i);
return pages.map((page, index) => {
let startIndex = index * limitOverride;
let endIndex = startIndex + limitOverride;
const spliced = idArray.slice(startIndex, endIndex);
const requestSpliced = Object.assign({}, request);
requestSpliced.id = spliced;
return {
current: page + 1,
total: pages.length,
request: requestSpliced
};
});
}
}
//# sourceMappingURL=RequestPaginator.js.map