UNPKG

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