@aequum/mongoose
Version:
aequum mongoose tools for repository, pagination, CRUD/CRUDL, configs and utils
30 lines (29 loc) • 1.03 kB
JavaScript
;
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);
}
});
}