@geekbears/gb-mongoose-query-parser 1.3.13 → 1.3.15

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.
@@ -76,6 +76,8 @@ var QueryParser = /** @class */ (function () {
76
76
  var parser = new query_parser_1.MongooseQueryParser();
77
77
  var queryParams = parser.parse(query);
78
78
  (0, lodash_1.forOwn)(transformFilter(queryParams.filter), function (value, key) {
79
+ if ((0, class_validator_1.isMongoId)(value))
80
+ value = mongoose_1.Types.ObjectId.createFromHexString(value.toString());
79
81
  docsQuery = docsQuery.where(key, value);
80
82
  if (countQueryDocuments)
81
83
  countQueryDocuments = countQueryDocuments.where(key, value);
@@ -337,16 +339,20 @@ exports.QueryParser = QueryParser;
337
339
  */
338
340
  function transformFilter(filter) {
339
341
  var walk = function (obj) {
340
- var _loop_1 = function (key) {
342
+ var _loop_1 = function (i, key) {
341
343
  if (Object.prototype.hasOwnProperty.call(obj, key)) {
342
344
  var value = obj[key];
343
345
  var validId = (0, mongoose_1.isValidObjectId)(value);
344
346
  if (validId && (0, class_validator_1.isMongoId)(value))
345
347
  obj[key] = mongoose_1.Types.ObjectId.createFromHexString(value.toString());
346
348
  else {
347
- setTimeout(function () {
349
+ if (i % 1000 === 0) {
350
+ setImmediate(function () {
351
+ walk(obj[key]);
352
+ });
353
+ }
354
+ else
348
355
  walk(obj[key]);
349
- }, 0);
350
356
  }
351
357
  // if (typeof value === 'object') {
352
358
  // console.log('walking......');
@@ -354,8 +360,9 @@ function transformFilter(filter) {
354
360
  // } else obj[key] = Types.ObjectId.isValid(value) ? new Types.ObjectId(value) : value;
355
361
  }
356
362
  };
357
- for (var key in obj) {
358
- _loop_1(key);
363
+ for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
364
+ var _a = obj_1[_i], i = _a[0], key = _a[1][0];
365
+ _loop_1(i, key);
359
366
  }
360
367
  return obj;
361
368
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekbears/gb-mongoose-query-parser",
3
- "version": "1.3.13",
3
+ "version": "1.3.15",
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",