horse-generator
Version:
horse generator for node framework
1 lines • 1.5 kB
JavaScript
;var _promise=require("babel-runtime/core-js/promise"),_promise2=_interopRequireDefault(_promise),_keys=require("babel-runtime/core-js/object/keys"),_keys2=_interopRequireDefault(_keys),_assign=require("babel-runtime/core-js/object/assign"),_assign2=_interopRequireDefault(_assign);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function paginate(e,t,i){e=e||{},(t=(0,_assign2.default)({},paginate.options,t)).limit=Number(t.limit)>0?Number(t.limit):10;var n=String(t.sortBy||"updatedAt");t.sort=Number(t.sort||-1)>0?n:"-"+n,t.lean=t.lean||!1;var o=!t.leanWithId||t.leanWithId,a=void 0;if(t.offset?(t.offset=t.offset,t.skip=t.offset):t.page?(t.page=t.page,t.skip=(t.page-1)*t.limit):(t.page=1,t.offset=0,t.skip=t.offset),t.limit){var s=this.find(e).select(t.select).sort(t.sort).skip(t.skip).limit(t.limit).lean(t.lean);t.populate&&[].concat(t.populate).forEach(function(e){s.populate(e)}),a={docs:s.exec(),count:this.count(e).exec()},t.lean&&o&&(a.docs=a.docs.then(function(e){return e.forEach(function(e){e.id=String(e._id)}),e}))}return a=(0,_keys2.default)(a).map(function(e){return a[e]}),_promise2.default.all(a).then(function(e){var n={list:e[0],count:e[1],limit:t.limit};return void 0!==t.offset&&(n.offset=t.offset),void 0!==t.page&&(n.page=t.page,n.pages=Math.ceil(n.count/t.limit)||1),"function"==typeof i?i(null,n):new _promise2.default(function(e,t){e(n)})})}module.exports=function(e){e.statics.paginate=paginate},module.exports.paginate=paginate;