1 | var e=require("lodash"),r=require("humps");function t(t){var i=e.pickBy(t,function(r,t){return!e.startsWith(t,"_")}),n=e.pickBy(t,function(r,t){return e.startsWith(t,"_")}),u={},s=n._limit,o=n._offset,l=n._sort,a=n._populate,c=n._select,f=n._group,p=function(e,r){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&-1===r.indexOf(i)&&(t[i]=e[i]);return t}(n,["_limit","_offset","_sort","_populate","_select","_group"]);e.isNil(s)||(u.limit=Number(s)),e.isNil(o)||(u.offset=Number(o)),e.isNil(l)||(u.sort=l),e.isNil(a)||(u.populate=a),e.isNil(c)||(u.select=c),e.isNil(f)||(u.group=f);var _=Object.keys(i).reduce(function(e,r){var t=i[r];if(!t)return e;if(Array.isArray(t))return e[r]={$in:t},e;var n=/(.+)_(gt|lt|gte|lte|ne)$/.exec(r);if(n){var u=n[1],s=n[2];return e[u]=e[u]||{},e[u]["$"+s]=t,e}return"string"!=typeof t?(e[r]=t,e):(t=t.trim(),(n=/(.+)_like/.exec(r))?(e[n[1]]={$regex:new RegExp(t,"i")},e):("q"===r?e.$text={$search:t}:e[r]="true"===t||"false"!==t&&("*"===t?{$ne:[]}:"none"===t?{$eq:[]}:t),e))},{});return e.isEmpty(_)||(u.filter=r.camelizeKeys(_,function(e,r){return"id"===e?"_id":r(e)})),Object.assign({},u,p)}module.exports=function(e){return void 0===e&&(e={}),function(e,r){return e.querystring&&(e.rawQuery=e.query,e.query=t(e.rawQuery)),r()}};
|