UNPKG

node-rigorous

Version:
42 lines (37 loc) 1.09 kB
"use strict"; module.exports = function createPaginationMethod() { return function () { var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var offsetParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var limitParam = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; var options = arguments.length > 3 ? arguments[3] : undefined; var offset; var limit; try { offset = parseInt(offsetParam, 10); } catch (err) { offset = 0; } try { limit = parseInt(limitParam, 10); } catch (err) { limit = 500; } var Model = this; return new Promise(function (resolve, reject) { Model.paginate(query, Object.assign({ offset: offset, limit: limit }, options), function (err, result) { // result.docs // result.total // result.limit - 10 // result.offset - 20 if (err) { return reject(err); } return resolve(result); }); }); }; };