@tempots/std
Version:
Std library for TypeScript. Natural complement to the Tempo libraries.
40 lines (39 loc) • 793 B
JavaScript
const i = (e) => e, o = (e) => (r) => (...t) => e(r, ...t), l = (e) => {
let r;
return () => (r === void 0 && (r = e()), r);
};
function s(...e) {
if (e.length === 0)
return (n) => n;
if (e.length === 1)
return e[0];
const [r, ...t] = [...e].reverse();
return (...n) => t.reduce(
(u, c) => c(u),
r(...n)
);
}
function f(e, ...r) {
return r.reduce((t, n) => n(t), e);
}
function a(e, ...r) {
return (...t) => e(...r, ...t);
}
function p(e) {
return (...r) => e(...r.slice().reverse());
}
const d = (e) => {
let r = !1, t;
return (...n) => (r || (r = !0, t = e(...n)), t);
}, v = (e) => (...r) => !e(...r);
export {
s as compose,
o as curryLeft,
p as flip,
i as identity,
l as memoize,
v as negate,
d as once,
a as partial,
f as pipe
};