remeda
Version:
A utility library for JavaScript and Typescript.
2 lines (1 loc) • 660 B
JavaScript
var T={asc:(r,n)=>r>n,desc:(r,n)=>r<n};function s(r,n){let[e,...o]=n;if(!m(e)){let t=u(...o);return r(e,t)}let a=u(e,...o);return t=>r(t,a)}function f(r,[n,e,...o]){let a,t;return m(e)?(a=n,t=[e,...o]):(a=e,t=[n,...o]),s((...i)=>r(...i,a),t)}function u(r,n,...e){let o=typeof r=="function"?r:r[0],a=typeof r=="function"?"asc":r[1],{[a]:t}=T,i=n===void 0?void 0:u(n,...e);return(y,c)=>{let p=o(y),l=o(c);return t(p,l)?1:t(l,p)?-1:i?.(y,c)??0}}function m(r){if(d(r))return!0;if(typeof r!="object"||!Array.isArray(r))return!1;let[n,e,...o]=r;return d(n)&&typeof e=="string"&&e in T&&o.length===0}var d=r=>typeof r=="function"&&r.length===1;export{s as a,f as b};