UNPKG

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