@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.
- package/lib/query-parser-helper.js +12 -5
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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
|
|
358
|
-
|
|
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.
|
|
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",
|