@geekbears/gb-mongoose-query-parser 1.3.8 → 1.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -339,10 +339,15 @@ function transformFilter(filter) {
339
339
  for (var key in obj) {
340
340
  if (Object.prototype.hasOwnProperty.call(obj, key)) {
341
341
  var value = obj[key];
342
- if (typeof value === 'object')
343
- walk(obj[key]);
342
+ var validId = (0, mongoose_1.isValidObjectId)(value);
343
+ if (validId)
344
+ obj[key] = mongoose_1.Types.ObjectId.createFromHexString(value.toString());
344
345
  else
345
- obj[key] = mongoose_1.Types.ObjectId.isValid(value) ? new mongoose_1.Types.ObjectId(value) : value;
346
+ walk(obj[key]);
347
+ // if (typeof value === 'object') {
348
+ // console.log('walking......');
349
+ // walk(obj[key]);
350
+ // } else obj[key] = Types.ObjectId.isValid(value) ? new Types.ObjectId(value) : value;
346
351
  }
347
352
  }
348
353
  return obj;
package/lib/test.spec.js CHANGED
@@ -48,6 +48,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
48
48
  var mocha_1 = require("@testdeck/mocha");
49
49
  var chai_1 = require("chai");
50
50
  var _1 = require("./");
51
+ var mongoose_1 = require("mongoose");
51
52
  var lodash_1 = require("lodash");
52
53
  var Tester = /** @class */ (function () {
53
54
  function Tester() {
@@ -178,6 +179,25 @@ var Tester = /** @class */ (function () {
178
179
  var parsed = parser.parse(query);
179
180
  chai_1.assert.isOk((0, lodash_1.isEqual)(parsed.filter, preDefined));
180
181
  };
182
+ Tester.prototype.parseId = function () {
183
+ var parser = new _1.MongooseQueryParser();
184
+ var filter = {
185
+ dailyRate: { $gte: 0, $lte: 60 },
186
+ geolocation: {
187
+ $near: {
188
+ $geometry: { type: 'Point', coordinates: [-122.16106, 37.37646] },
189
+ $minDistance: 0,
190
+ $maxDistance: 10,
191
+ },
192
+ },
193
+ unavailableDates: { $nin: [] },
194
+ _org: new mongoose_1.Types.ObjectId(),
195
+ };
196
+ var parsed = parser.parse({ filter: filter });
197
+ chai_1.assert.isOk((0, mongoose_1.isValidObjectId)(parsed.filter['_org']));
198
+ chai_1.assert.isObject(parsed.filter);
199
+ chai_1.assert.isObject(parsed.filter['dailyRate']);
200
+ };
181
201
  __decorate([
182
202
  (0, mocha_1.test)('should parse general query'),
183
203
  __metadata("design:type", Function),
@@ -232,6 +252,12 @@ var Tester = /** @class */ (function () {
232
252
  __metadata("design:paramtypes", []),
233
253
  __metadata("design:returntype", void 0)
234
254
  ], Tester.prototype, "parseComplex", null);
255
+ __decorate([
256
+ (0, mocha_1.test)('should parse mongo id'),
257
+ __metadata("design:type", Function),
258
+ __metadata("design:paramtypes", []),
259
+ __metadata("design:returntype", void 0)
260
+ ], Tester.prototype, "parseId", null);
235
261
  Tester = __decorate([
236
262
  (0, mocha_1.suite)('Tester')
237
263
  ], Tester);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekbears/gb-mongoose-query-parser",
3
- "version": "1.3.8",
3
+ "version": "1.3.10",
4
4
  "description": "Convert url query string to MongooseJs friendly query object including advanced filtering, sorting, population, deep population, string template, type casting and many more...",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -32,15 +32,15 @@
32
32
  "homepage": "https://gitlab.com/geekbears/utilities/backend/gb-mongoose-query-parser#readme",
33
33
  "devDependencies": {
34
34
  "@testdeck/mocha": "^0.3.3",
35
- "@types/chai": "^4.3.14",
36
- "@types/lodash": "^4.17.0",
35
+ "@types/chai": "^4.3.16",
36
+ "@types/lodash": "^4.17.1",
37
37
  "@types/mocha": "^10.0.6",
38
- "@types/node": "^20.12.7",
38
+ "@types/node": "^20.12.12",
39
39
  "@types/qs": "^6.9.15",
40
40
  "chai": "^4.4.1",
41
41
  "mocha": "^10.4.0",
42
42
  "prettier": "^3.2.5",
43
- "rimraf": "^5.0.5",
43
+ "rimraf": "^5.0.7",
44
44
  "ts-node": "^10.9.2",
45
45
  "tslint": "^6.1.3",
46
46
  "typescript": "^5.4.5"