UNPKG

@runeya/runeya

Version:

Monitor processes as a stack

2 lines (1 loc) 1.57 kB
var m=function(r){return function(e,n,u){return r(e,n,u)*u}},g=function(r,e){if(r)throw Error("Invalid sort config: "+e)},s=function(r){var e=r||{},n=e.asc,u=e.desc,t=n?1:-1,i=n||u;g(!i,"Expected `asc` or `desc` property"),g(n&&u,"Ambiguous object with `asc` and `desc` config properties");var f=r.comparer&&m(r.comparer);return{order:t,sortBy:i,comparer:f}},P=function(r){return function e(n,u,t,i,f,a,c){var o,l;if(typeof n=="string")o=a[n],l=c[n];else if(typeof n=="function")o=n(a),l=n(c);else{var v=s(n);return e(v.sortBy,u,t,v.order,v.comparer||r,a,c)}var d=f(o,l,i);return(d===0||o==null&&l==null)&&u.length>t?e(u[t],u,t+1,i,f,a,c):d}};function A(r,e,n){if(r===void 0||r===!0)return function(i,f){return e(i,f,n)};if(typeof r=="string")return g(r.includes("."),"String syntax not allowed for nested properties."),function(i,f){return e(i[r],f[r],n)};if(typeof r=="function")return function(i,f){return e(r(i),r(f),n)};if(Array.isArray(r)){var u=P(e);return function(i,f){return u(r[0],r,1,n,e,i,f)}}var t=s(r);return A(t.sortBy,t.comparer||e,t.order)}var p=function(r,e,n,u){var t;return Array.isArray(e)?(Array.isArray(n)&&n.length<2&&(t=n,n=t[0]),e.sort(A(n,u,r))):e};function S(r){var e=m(r.comparer);return function(n){var u=Array.isArray(n)&&!r.inPlaceSorting?n.slice():n;return{asc:function(t){return p(1,u,t,e)},desc:function(t){return p(-1,u,t,e)},by:function(t){return p(1,u,t,e)}}}}var w=function(r,e,n){return r==null?n:e==null?-n:typeof r!=typeof e?typeof r<typeof e?-1:1:r<e?-1:r>e?1:0},I=S({comparer:w});S({comparer:w,inPlaceSorting:!0});export{I as s};