mongoose-smart-query 0.1.2 → 0.1.3
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/dist/mongoose-smart-query.js +1 -1
- package/package.json +14 -14
- package/.eslintignore +0 -1
- package/.eslintrc.json +0 -23
- package/.prettierignore +0 -3
- package/.prettierrc.json +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,i,s,u){return new(s=s||Promise)(function(r,t){function n(e){try{a(u.next(e))}catch(e){t(e)}}function o(e){try{a(u.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?r(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(n,o)}a((u=u.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(n,o){var a,i,s,u={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},
|
|
1
|
+
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,i,s,u){return new(s=s||Promise)(function(r,t){function n(e){try{a(u.next(e))}catch(e){t(e)}}function o(e){try{a(u.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?r(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(n,o)}a((u=u.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(n,o){var a,i,s,u={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},c={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function e(r){return function(e){var t=[r,e];if(a)throw new TypeError("Generator is already executing.");for(;u=c&&t[c=0]?0:u;)try{if(a=1,i&&(s=2&t[0]?i.return:t[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,t[1])).done)return s;switch(i=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,i=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(s=0<(s=u.trys).length&&s[s.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]<s[3]))u.label=t[1];else if(6===t[0]&&u.label<s[1])u.label=s[1],s=t;else{if(!(s&&u.label<s[2])){s[2]&&u.ops.pop(),u.trys.pop();continue}u.label=s[2],u.ops.push(t)}}t=o.call(n,u)}catch(e){t=[6,e],i=0}finally{a=s=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)!n&&o in t||((n=n||Array.prototype.slice.call(t,0,o))[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},mongoose_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.removeKeys=exports.stringToQuery=exports.getListOfPossibleLookups=void 0,require("mongoose"));function getListOfPossibleLookups(r){var e,n=[];for(e in r)!function(t){var e;if("object"!=typeof r[t])return t.includes(".")&&(e=t.split(/\.(.+)/),n.push(e[0]));n.push(t),e=getListOfPossibleLookups(r[t]),n=n.concat(e.map(function(e){return t+"."+e}))}(e);return n}function stringToQuery(e,a){void 0===a&&(a="1");e=(e=void 0===e?"":e).replace(/(})(?!$| *})|([\w.]+)(?= *{)|([\w.]+)(?=$| *})|([\w.]+)/g,function(e,t,r,n,o){return t?t+",":r?'"'.concat(r,'":'):n?'"'.concat(n,'": ').concat(a):o?'"'.concat(o,'": ').concat(a,","):""});return JSON.parse("{ ".concat(e," }"))}function parseValue(e,t){switch(t){case"ObjectID":case"ObjectId":return new mongoose_1.Types.ObjectId(e);case"Date":return new Date(e);case"Number":return Number(e);case"Boolean":return"boolean"==typeof e?e:"true"===e;default:return e}}function removeKeys(e,t){var r,n=__assign({},e);for(r in t)!n[r]||"object"==typeof t[r]&&(n[r]=removeKeys(n[r],t[r]),0!==Object.keys(n[r]).length)||delete n[r];return n}function default_1(g,e){var t=e.protectedFields,p=void 0===t?"":t,t=e.defaultFields,f=void 0===t?"_id":t,t=e.defaultSort,d=void 0===t?"-_id":t,t=e.defaultLimit,y=void 0===t?20:t,t=e.pageQueryName,_=void 0===t?"$page":t,t=e.limitQueryName,v=void 0===t?"$limit":t,t=e.fieldsQueryName,$=void 0===t?"$fields":t,t=e.sortQueryName,b=void 0===t?"$sort":t,t=e.queryName,m=void 0===t?"$q":t,t=e.unwindName,w=void 0===t?"$unwind":t,t=e.fieldsForDefaultQuery,x=void 0===t?"":t,t=e.allFieldsQueryName,O=void 0===t?"$getAllFields":t,t=e.getAllFieldsByDefault,A=void 0!==t&&t,k=stringToQuery(p);g.statics.smartQuery=function(e){e=this.__smartQueryGetPipeline(__assign({},e=void 0===e?{}:e));return this.aggregate(e)},g.statics.smartCount=function(r){return void 0===r&&(r={}),__awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return t=this.__smartQueryGetPipeline(__assign({},r),!0),[4,this.aggregate(t)];case 1:return[2,0===(t=e.sent()).length?0:t[0].size]}})})},g.statics.__smartQueryGetPipeline=function(h,e){void 0===e&&(e=!1);var t=JSON.parse(JSON.stringify(h)),r=parseInt(h[_])||1,n=parseInt(h[v])||y;function u(){var e,d={},y={};for(e in h)!function(e){var t,r=g.path(e),n=r?d:y;if(!r&&!e.includes("."))return;var o,a=/(?:\{(\$?[\w ]+)\})?([^{}\n]+)/g,i=[];if("string"==typeof h[e]){for(;null!==(o=a.exec(h[e]));)i.push([o[0],o[1],o[2]]);for(var s=0,u=i;s<u.length;s++){var c=u[s],l=c[1],p=c[2];switch(l){case"$exists":n[e]={$exists:"false"!==p};break;case"$includes":n[e]={$regex:RegExp(p.replace(/[^\w]/g,"."),"i")};break;case"$in":var f=p.split(",").map(function(e){return parseValue(e.trim(),null==r?void 0:r.instance)});n[e]={$in:f};break;default:f=parseValue(p,null==r?void 0:r.instance);l?"object"==typeof n[e]?n[e][l]=f:n[e]=((t={})[l]=f,t):"string"==typeof p&&p.includes("$exists")?n[e]={$exists:!0,$ne:[]}:n[e]=f}}}else n[e]=parseValue(h[e],null==r?void 0:r.instance)}(e);return{$localMatch:d,$foreignMatch:y}}function o(){return h[w]?[{$unwind:{path:"$".concat(h[w]),preserveNullAndEmptyArrays:!0}}]:[]}var a,i,s=function(){var e,t={};if(h[m]&&x)for(var r=x.split(" "),n=h[m].replace(/[()[\\\]*]/g,"."),o={$regex:RegExp(n,"i")},a=0,i=r;a<i.length;a++){var s=i[a];!!g.path(s)?(t.$or||(t.$or=[]),t.$or.push(((e={})["".concat(s)]=o,e))):(t.$or||(t.$or=[]),t.$or.push(((e={})["".concat(s)]=o,e)))}return n=u(),{$queryMatch:__assign(__assign({},{}),n.$localMatch),$foreignMatch:__assign(__assign({},t),n.$foreignMatch)}}(),c=(!(c=h)[$]&&f&&(c[$]=f),removeKeys(stringToQuery(c[$]),k)),l=(a=[],getListOfPossibleLookups(c).forEach(function(e){var t=g.path(e);t&&t.options.ref&&(t=t.options.ref,a.push({$lookup:{from:t,localField:e,foreignField:"_id",as:e}},{$unwind:{path:"$".concat(e),preserveNullAndEmptyArrays:!0}}))}),a);return e?i=__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([],0!==Object.keys(s.$queryMatch).length?[{$match:s.$queryMatch}]:[],!0),l,!0),o(),!0),0!==Object.keys(s.$foreignMatch).length?[{$match:s.$foreignMatch}]:[],!0),[{$count:"size"}],!1):(e=function(){if(!h[b]){if(!d)return{};h[b]=d}for(var e=/(-)?([\w.]+)/g,t={},r={};null!==(o=e.exec(h[b]));){var n=o[1],o=o[2];!!g.path(o)?t[o]=n?-1:1:r[o]=n?-1:1}return{$localSort:0!==Object.keys(t).length?t:void 0,$foreignSort:0!==Object.keys(r).length?r:void 0}}(),i=__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([],0!==Object.keys(s.$queryMatch).length?[{$match:s.$queryMatch}]:[],!0),e.$localSort?[{$sort:e.$localSort}]:[],!0),l,!0),o(),!0),0!==Object.keys(s.$foreignMatch).length?[{$match:s.$foreignMatch}]:[],!0),[{$skip:(r-1)*n},{$limit:n}],!1),!t[$]&&!0===A||"true"===(null==(e=h[O])?void 0:e.toString())?p&&i.push({$project:stringToQuery(p,"0")}):i.push({$project:c})),i}}exports.getListOfPossibleLookups=getListOfPossibleLookups,exports.stringToQuery=stringToQuery,exports.removeKeys=removeKeys,exports.default=default_1;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mongoose-smart-query",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Optimize rest requests",
|
|
5
5
|
"main": "./dist/mongoose-smart-query.js",
|
|
6
6
|
"types": "./dist/mongoose-smart-query.d.ts",
|
|
@@ -31,20 +31,20 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/mgyugcha/mongoose-smart-query#readme",
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@types/jest": "^29.0
|
|
35
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
36
|
-
"@typescript-eslint/parser": "^5.
|
|
37
|
-
"eslint": "^8.
|
|
38
|
-
"eslint-config-prettier": "^8.
|
|
34
|
+
"@types/jest": "^29.5.0",
|
|
35
|
+
"@typescript-eslint/eslint-plugin": "^5.55.0",
|
|
36
|
+
"@typescript-eslint/parser": "^5.55.0",
|
|
37
|
+
"eslint": "^8.36.0",
|
|
38
|
+
"eslint-config-prettier": "^8.7.0",
|
|
39
39
|
"eslint-config-standard": "^17.0.0",
|
|
40
|
-
"eslint-plugin-import": "^2.
|
|
41
|
-
"eslint-plugin-jest": "^27.
|
|
40
|
+
"eslint-plugin-import": "^2.27.5",
|
|
41
|
+
"eslint-plugin-jest": "^27.2.1",
|
|
42
42
|
"eslint-plugin-node": "^11.1.0",
|
|
43
|
-
"eslint-plugin-promise": "^6.
|
|
44
|
-
"jest": "^29.0
|
|
45
|
-
"mongoose": "^
|
|
46
|
-
"ts-jest": "^29.0.
|
|
47
|
-
"typescript": "^
|
|
48
|
-
"uglify-js": "^3.17.
|
|
43
|
+
"eslint-plugin-promise": "^6.1.1",
|
|
44
|
+
"jest": "^29.5.0",
|
|
45
|
+
"mongoose": "^7.0.2",
|
|
46
|
+
"ts-jest": "^29.0.5",
|
|
47
|
+
"typescript": "^5.0.2",
|
|
48
|
+
"uglify-js": "^3.17.4"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/.eslintignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
dist
|
package/.eslintrc.json
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"es2021": true,
|
|
4
|
-
"node": true,
|
|
5
|
-
"jest/globals": true
|
|
6
|
-
},
|
|
7
|
-
"extends": ["standard", "prettier"],
|
|
8
|
-
"parser": "@typescript-eslint/parser",
|
|
9
|
-
"parserOptions": {
|
|
10
|
-
"ecmaVersion": 12,
|
|
11
|
-
"sourceType": "module"
|
|
12
|
-
},
|
|
13
|
-
"plugins": [
|
|
14
|
-
"@typescript-eslint",
|
|
15
|
-
"jest"
|
|
16
|
-
],
|
|
17
|
-
"rules": {
|
|
18
|
-
"comma-dangle": [
|
|
19
|
-
"warn",
|
|
20
|
-
"always-multiline"
|
|
21
|
-
]
|
|
22
|
-
}
|
|
23
|
-
}
|
package/.prettierignore
DELETED
package/.prettierrc.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"arrowParens": "always",
|
|
3
|
-
"bracketSameLine": false,
|
|
4
|
-
"bracketSpacing": true,
|
|
5
|
-
"embeddedLanguageFormatting": "auto",
|
|
6
|
-
"htmlWhitespaceSensitivity": "css",
|
|
7
|
-
"insertPragma": false,
|
|
8
|
-
"jsxSingleQuote": false,
|
|
9
|
-
"printWidth": 80,
|
|
10
|
-
"proseWrap": "preserve",
|
|
11
|
-
"quoteProps": "as-needed",
|
|
12
|
-
"requirePragma": false,
|
|
13
|
-
"semi": false,
|
|
14
|
-
"singleQuote": true,
|
|
15
|
-
"tabWidth": 2,
|
|
16
|
-
"trailingComma": "all",
|
|
17
|
-
"useTabs": false,
|
|
18
|
-
"vueIndentScriptAndStyle": false
|
|
19
|
-
}
|