UNPKG

@kfijolek/boardgamegeekclient

Version:

Javascript client to interact with BoardGameGeek public XML API

28 lines 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RequestPaginator = void 0; 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 }; }); } } exports.RequestPaginator = RequestPaginator; //# sourceMappingURL=RequestPaginator.js.map