UNPKG

2.07 kBJavaScriptView Raw
1import{camelizeKeys as r}from"humps";import{pickBy as e,startsWith as t,isNil as o,isEmpty as i}from"lodash";function n(r){return function(r){return!isNaN(r)}(r)?Number(r):r}function u(u){var a=e(u,function(r,e){return!t(e,"_")}),f=e(u,function(r,e){return t(e,"_")}),s={},c=f._limit,l=f._offset,p=f._sort,_=f._populate,g=f._select,v=f._group,y=function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&-1===e.indexOf(o)&&(t[o]=r[o]);return t}(f,["_limit","_offset","_sort","_populate","_select","_group"]);o(c)||(s.limit=n(c)),o(l)||(s.offset=n(l)),o(p)||(s.sort=p),o(_)||(s.populate=_),o(g)||(s.select=g),o(v)||(s.group=v);var m=Object.keys(a).reduce(function(r,e){var t=a[e];if(!t)return r;if(Array.isArray(t))return r[e]=t,r;var o=/(.+)_(gt|lt|gte|lte|ne)$/.exec(e);if(o){var i=o[1],n=o[2];return r[i]=r[i]||{},r[i]["$"+n]=t,r}return"string"!=typeof t?(r[e]=t,r):(t=t.trim(),(o=/(.+)_like/.exec(e))?(r[o[1]]={$regex:new RegExp(t,"i")},r):(r[e]="true"===t||"false"!==t&&t,r))},{});return i(m)||(s.filter=r(m,function(r,e){return"id"===r?"_id":e(r)})),Object.assign({},s,y)}function a(r){return void 0===r&&(r={}),function(r,e){return r.querystring&&(r.rawQuery=r.query,r.query=u(r.rawQuery)),e()}}function f(r,e){return r+"_"+e.replace("$","")}function s(r){void 0===r&&(r={});var e=r.limit,t=r.offset,i=r.sort,u=r.populate,a=r.select,s=r.group,c=r.filter;void 0===c&&(c={});var l=function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&-1===e.indexOf(o)&&(t[o]=r[o]);return t}(r,["limit","offset","sort","populate","select","group","filter"]),p={};for(var _ in o(e)||(p._limit=n(e)),o(t)||(p._offset=n(t)),o(i)||(p._sort=i),o(u)||(p._populate=u),o(a)||(p._select=a),o(s)||(p._group=s),c){var g=c[_];if("object"!=typeof g||Array.isArray(g))p[_]=g;else for(var v in g)switch(v){case"$lt":case"$gt":case"$lte":case"$gte":case"$ne":p[f(_,v)]=g[v];break;case"$regex":p[f(_,"$like")]=g[v].source}}return Object.assign({},p,l)}export{a as QueryNormalizr,u as normalize,s as denormalize};
2//# sourceMappingURL=index.mjs.map