Code coverage report for src/helpers/calcPagination.es6

Statements: 100% (25 / 25)      Branches: 100% (18 / 18)      Functions: 100% (2 / 2)      Lines: 100% (24 / 24)      Ignored: 1 branch     

All files » src/helpers/ » calcPagination.es6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63                    1     1     1   1   1   1 10 10           10 2 8 2   10 3   10 10 10 10 8   8 2     8     10                   1  
/**
 * 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==