UNPKG

@aequum/mongoose

Version:

aequum mongoose tools for repository, pagination, CRUD/CRUDL, configs and utils

30 lines (29 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.paginate = paginate; require("mongoose-paginate-v2"); const default_mongoose_paginator_options_1 = require("../options/default-mongoose-paginator.options"); /** @ignore */ async function paginate(model, filter, page, size, sort, projection, options) { options = Object.assign({}, default_mongoose_paginator_options_1.defaultMongoosePaginateOptions, options); if (projection) options.projection = projection; if (sort) options.sort = sort; options.page = page; options.limit = size; return new Promise((resolve, reject) => { try { void model.paginate(filter, options, (err, result) => { if (err) return reject(err); // Delete properties marked with `_` in options delete result.paginator._; resolve(result); }); } catch (err) { reject(err); } }); }