UNPKG

stagify

Version:

mongoose aggregate pipeline parser

34 lines (33 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var querify_1 = require("./querify"); var index_1 = require("./index"); exports.default = (function (query) { var _a = (0, querify_1.default)(query), filters = _a.filters, select = _a.select, options = _a.options; var skip = options.skip, limit = options.limit, sort = options.sort; var stages = [ { $match: filters, }, ]; var project = (0, index_1.projectize)(select); if (project) stages.push(project); if ((0, index_1.isValidObject)(sort || {})) { for (var key in sort) { sort[key] = typeof sort[key] === 'string' ? parseInt(sort[key]) : sort[key]; } stages.push({ $sort: sort, }); } if (options.limit || filters.page) { stages.push({ $skip: typeof skip === 'string' ? parseInt(skip) : skip, }); stages.push({ $limit: typeof limit === 'string' ? parseInt(limit) : limit, }); } return stages; });