UNPKG

@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
"use strict"; 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