stagify
Version:
mongoose aggregate pipeline parser
34 lines (33 loc) • 1.44 kB
JavaScript
;
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
var qs = require("qs");
var map_filter_1 = require("./map_filter");
var map_options_1 = require("./map_options");
exports.default = (function (query) {
var _a = qs.parse(query), select = _a.select, page = _a.page, limit = _a.limit, sort = _a.sort, params = __rest(_a, ["select", "page", "limit", "sort"]);
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
console.log({ params: params });
var filters = (0, map_filter_1.mapFilters)(params);
var options = (0, map_options_1.mapOptions)(page, limit, sort);
var project = {};
for (var field in select) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
project[field] = parseInt(select[field], 10);
}
return {
filters: filters,
select: project,
options: options,
};
});