@naverpay/hidash
Version:
improved lodash
40 lines (39 loc) • 843 B
JavaScript
import i from "core-js-pure/features/instance/push.js";
const a = function(e) {
let t = [];
const u = (r) => r, s = e.length ? e : [u];
for (const r of s)
Array.isArray(r) ? t = t.concat(r) : i(t).call(t, r);
return t.map((r) => typeof r == "function" ? r : (n) => n[r]);
};
function f(e, t) {
if (e != null && t != null) {
if (e > t)
return 1;
if (e < t)
return -1;
}
return e == null ? 1 : t == null ? -1 : 0;
}
function p(e, ...t) {
if (!e)
return [];
const u = a(t), s = u.length;
return e.map((r) => ({
origin: r,
values: u.map((n) => n(r))
})).sort((r, n) => {
for (let o = 0; o < s; o++) {
const l = f(r.values[o], n.values[o]);
if (l !== 0)
return l;
}
return 0;
}).map(({
origin: r
}) => r);
}
export {
p as default,
p as sortBy
};