@brozeph/mongoose-middleware
Version:
Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply
41 lines (30 loc) • 1.25 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
var _default = function _default(mongoose) {
mongoose.Query.prototype.field = function (options) {
var query = this;
if (options && options.filters && options.filters.field) {
if (typeof options.filters.field === 'string' && /\,/g.test(options.filters.field)) {
options.filters.field = options.filters.field.split(/\,/g);
}
if ((0, _isArray["default"])(options.filters.field) && options.filters.field.length) {
options.filters.field.forEach(function (field) {
if (query.model.schema.path(field)) {
query.select(field.trim());
}
});
} else if (query.model.schema.path(options.filters.field)) {
query.select(options.filters.field.trim());
}
}
return query;
};
};
exports["default"] = _default;
//# sourceMappingURL=field.js.map
;