/**
* calcPagination
*
* @module calcPagination
*
* @author Luca Pau <luca.pau82@gmail.com>
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = calcPagination;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _config = require('../config');
var _config2 = _interopRequireDefault(_config);
function calcPagination(currentPage, totalItems, itemsPerPage) {
itemsPerPage = parseInt(itemsPerPage);
currentPage = parseInt(currentPage);
//totalItems = parseInt(totalItems);
//if(isNaN(totalItems))
// throw new TypeError('totalItems must be a valid number');
if (isNaN(itemsPerPage)) {
itemsPerPage = _config2['default'].resultsPerPageDefault;
} else if (itemsPerPage > _config2['default'].resultsPerPageMax) {
itemsPerPage = _config2['default'].resultsPerPageMax;
}
if (isNaN(currentPage) || currentPage < 1) {
currentPage = 1;
}
var limit = itemsPerPage;
var skip = 0;
var totalPages = 0;
if (totalItems > 0) {
totalPages = totalItems % itemsPerPage === 0 ? totalItems / itemsPerPage : parseInt(totalItems / itemsPerPage) + 1;
if (currentPage > totalPages) {
currentPage = totalPages;
}
skip = (currentPage - 1) * limit;
}
return {
skip: skip,
limit: limit,
totalPages: totalPages,
currentPage: currentPage,
itemsPerPage: itemsPerPage,
totalItems: totalItems
};
}
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9sdWdoaW5vL1Byb2plY3RzL2FqYXhDYWxsRm9ybWF0dGVyL3NyYy9oZWxwZXJzL2NhbGNQYWdpbmF0aW9uLmVzNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O3FCQVV3QixjQUFjOzs7OztzQkFGbkIsV0FBVzs7OztBQUVmLFNBQVMsY0FBYyxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFO0FBQzVFLGNBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDdEMsYUFBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7Ozs7O0FBTXBDLE1BQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO0FBQ3ZCLGdCQUFZLEdBQUcsb0JBQU8scUJBQXFCLENBQUM7R0FDN0MsTUFBTSxJQUFJLFlBQVksR0FBRyxvQkFBTyxpQkFBaUIsRUFBRTtBQUNsRCxnQkFBWSxHQUFHLG9CQUFPLGlCQUFpQixDQUFDO0dBQ3pDO0FBQ0QsTUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRTtBQUN6QyxlQUFXLEdBQUcsQ0FBQyxDQUFDO0dBQ2pCO0FBQ0QsTUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDO0FBQ3pCLE1BQUksSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNiLE1BQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQUNuQixNQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7QUFDbEIsY0FBVSxHQUNSLFVBQVUsR0FBRyxZQUFZLEtBQUssQ0FBQyxHQUMvQixVQUFVLEdBQUcsWUFBWSxHQUN6QixRQUFRLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQUFDeEMsQ0FBQzs7QUFFRixRQUFJLFdBQVcsR0FBRyxVQUFVLEVBQUU7QUFDNUIsaUJBQVcsR0FBRyxVQUFVLENBQUM7S0FDMUI7O0FBRUQsUUFBSSxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQSxHQUFJLEtBQUssQ0FBQztHQUNsQzs7QUFFRCxTQUFPO0FBQ0wsUUFBSSxFQUFFLElBQUk7QUFDVixTQUFLLEVBQUUsS0FBSztBQUNaLGNBQVUsRUFBRSxVQUFVO0FBQ3RCLGVBQVcsRUFBRSxXQUFXO0FBQ3hCLGdCQUFZLEVBQUUsWUFBWTtBQUMxQixjQUFVLEVBQUUsVUFBVTtHQUN2QixDQUFDO0NBQ0giLCJmaWxlIjoiL1VzZXJzL2x1Z2hpbm8vUHJvamVjdHMvYWpheENhbGxGb3JtYXR0ZXIvc3JjL2hlbHBlcnMvY2FsY1BhZ2luYXRpb24uZXM2Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBjYWxjUGFnaW5hdGlvblxuICpcbiAqIEBtb2R1bGUgY2FsY1BhZ2luYXRpb25cbiAqXG4gKiBAYXV0aG9yIEx1Y2EgUGF1IDxsdWNhLnBhdTgyQGdtYWlsLmNvbT5cbiAqL1xuXG5pbXBvcnQgY29uZmlnIGZyb20gJy4uL2NvbmZpZyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNhbGNQYWdpbmF0aW9uKGN1cnJlbnRQYWdlLCB0b3RhbEl0ZW1zLCBpdGVtc1BlclBhZ2UpIHtcbiAgaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoaXRlbXNQZXJQYWdlKTtcbiAgY3VycmVudFBhZ2UgPSBwYXJzZUludChjdXJyZW50UGFnZSk7XG4gIC8vdG90YWxJdGVtcyA9IHBhcnNlSW50KHRvdGFsSXRlbXMpO1xuXG4gIC8vaWYoaXNOYU4odG90YWxJdGVtcykpXG4gIC8vICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0b3RhbEl0ZW1zIG11c3QgYmUgYSB2YWxpZCBudW1iZXInKTtcblxuICBpZiAoaXNOYU4oaXRlbXNQZXJQYWdlKSkge1xuICAgIGl0ZW1zUGVyUGFnZSA9IGNvbmZpZy5yZXN1bHRzUGVyUGFnZURlZmF1bHQ7XG4gIH0gZWxzZSBpZiAoaXRlbXNQZXJQYWdlID4gY29uZmlnLnJlc3VsdHNQZXJQYWdlTWF4KSB7XG4gICAgaXRlbXNQZXJQYWdlID0gY29uZmlnLnJlc3VsdHNQZXJQYWdlTWF4O1xuICB9XG4gIGlmIChpc05hTihjdXJyZW50UGFnZSkgfHwgY3VycmVudFBhZ2UgPCAxKSB7XG4gICAgY3VycmVudFBhZ2UgPSAxO1xuICB9XG4gIHZhciBsaW1pdCA9IGl0ZW1zUGVyUGFnZTtcbiAgdmFyIHNraXAgPSAwO1xuICB2YXIgdG90YWxQYWdlcyA9IDA7XG4gIGlmICh0b3RhbEl0ZW1zID4gMCkge1xuICAgIHRvdGFsUGFnZXMgPSAoXG4gICAgICB0b3RhbEl0ZW1zICUgaXRlbXNQZXJQYWdlID09PSAwID9cbiAgICAgIHRvdGFsSXRlbXMgLyBpdGVtc1BlclBhZ2UgOlxuICAgICAgcGFyc2VJbnQodG90YWxJdGVtcyAvIGl0ZW1zUGVyUGFnZSkgKyAxXG4gICAgKTtcblxuICAgIGlmIChjdXJyZW50UGFnZSA+IHRvdGFsUGFnZXMpIHtcbiAgICAgIGN1cnJlbnRQYWdlID0gdG90YWxQYWdlcztcbiAgICB9XG5cbiAgICBza2lwID0gKGN1cnJlbnRQYWdlIC0gMSkgKiBsaW1pdDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2tpcDogc2tpcCxcbiAgICBsaW1pdDogbGltaXQsXG4gICAgdG90YWxQYWdlczogdG90YWxQYWdlcyxcbiAgICBjdXJyZW50UGFnZTogY3VycmVudFBhZ2UsXG4gICAgaXRlbXNQZXJQYWdlOiBpdGVtc1BlclBhZ2UsXG4gICAgdG90YWxJdGVtczogdG90YWxJdGVtc1xuICB9O1xufSJdfQ== |