@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.
- package/lib/query-parser-helper.js +8 -3
- package/lib/test.spec.js +26 -0
- package/package.json +5 -5
|
@@ -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
|
-
|
|
343
|
-
|
|
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]
|
|
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.
|
|
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.
|
|
36
|
-
"@types/lodash": "^4.17.
|
|
35
|
+
"@types/chai": "^4.3.16",
|
|
36
|
+
"@types/lodash": "^4.17.1",
|
|
37
37
|
"@types/mocha": "^10.0.6",
|
|
38
|
-
"@types/node": "^20.12.
|
|
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.
|
|
43
|
+
"rimraf": "^5.0.7",
|
|
44
44
|
"ts-node": "^10.9.2",
|
|
45
45
|
"tslint": "^6.1.3",
|
|
46
46
|
"typescript": "^5.4.5"
|