@onesy/mongo
Version:
Utils for easier using of mongodb library.
28 lines • 1.04 kB
JavaScript
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;