UNPKG

@onesy/mongo

Version:

Utils for easier using of mongodb library.

28 lines 1.04 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import encode from '@onesy/utils/encode'; import getObjectValue from '@onesy/utils/getObjectValue'; import Mongo from './Mongo'; export class OnesyMongo { static get mongo() { return this.Mongo_; } static createPaginator(object, properties) { let sort = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; let type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'next'; const value = {}; for (const property of properties) { const value_ = getObjectValue(object, property); if (value_ !== undefined) { const sortValue = sort[property]; let operator = type === 'next' ? '$gt' : '$lt'; if (['dsc', 'descending', -1].includes(sortValue)) operator = type === 'next' ? '$lt' : '$gt'; value[property] = { [operator]: value_ }; } } return encode(value); } } _defineProperty(OnesyMongo, "Mongo_", new Mongo()); export default OnesyMongo;