@studiohyperdrive/utils
Version:
A package containing common Javascript utils.
87 lines (86 loc) • 2.94 kB
JavaScript
const w = (e) => !e || typeof e != "string" ? "" : e.split(/(?=[A-Z])/).map((r, t) => t === 0 ? r[0].toUpperCase() + r.slice(1).toLowerCase() : r.toLowerCase()).join(" ").trim(), C = (e) => typeof e != "string" ? e : e.replaceAll(/[\s\u00A0]/gi, " "), i = (e) => e.normalize("NFD").replace(/([\u0300-\u036f])/g, ""), k = (e, r, t = !0, n = !0) => b(e, r, t, n, "some"), F = (e, r, t = !0, n = !0) => b(e, r, t, n, "every"), b = (e, r, t = !0, n = !0, o) => {
if (!r.trim())
return !0;
if (!e)
return !1;
const s = r.split(" ").filter((c) => !!c), O = i(e), a = (c) => {
const u = t ? O : e, f = t ? i(c) : c;
return n ? u.toLowerCase().includes(f.toLowerCase()) : u.includes(f);
};
return o === "some" ? s.some(a) : s.every(a);
}, L = (e, r) => {
if (!e || Object.values(e).length === 0)
return;
const t = Object.values(e).indexOf(r);
return Object.keys(e)[t];
};
function j(e) {
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
var h = (e) => {
if (Object.prototype.toString.call(e) !== "[object Object]")
return !1;
const r = Object.getPrototypeOf(e);
return r === null || r === Object.prototype;
};
const y = h, d = (e, r, t) => {
let n = e;
return r.cleanArrays === !0 && (n = e.map((o) => l(o, r, t + 1)).filter(Boolean)), t === 0 || r.preserveArrays === !0 || n.length > 0 ? n : null;
}, l = (e, r, t) => {
const n = {};
if (!y(e))
return Array.isArray(e) ? d(e, r, t) : e;
for (const o of Object.keys(e))
if (!(e[o] === null || e[o] === void 0))
if (Array.isArray(e[o])) {
const s = d(e[o], r, t + 1);
s !== null && (n[o] = s);
} else if (y(e[o])) {
const s = l(e[o], r, t + 1);
s !== null && Object.keys(s).length > 0 && (n[o] = s);
} else e[o] !== "" && (n[o] = e[o]);
return t > 0 && Object.keys(n).length === 0 ? null : n;
}, g = (e, r) => {
const t = {
preserveArrays: !0,
cleanArrays: !0,
...r
};
return l(e, t, 0);
};
var m = g;
const A = /* @__PURE__ */ j(m), S = (e, ...r) => r.reduce(
(t, n) => {
const [o, s] = n;
return s == null || typeof s == "object" && Object.keys(A(s)).length === 0 ? t : {
...t,
[o]: s
};
},
// Iben: Cast the start value to any to prevent issues with typing
// eslint-disable-next-line @typescript-eslint/no-explicit-any
e
), p = (e, r) => {
let t;
return e.forEach((n) => {
t || (r(n) ? t = n : t = p(n.children, r));
}), t;
}, V = (e, r) => {
try {
const t = URL.createObjectURL(e), n = document.createElement("a");
n.download = r, n.href = t, n.click();
} catch {
throw new Error("Failed to transform blob to file");
}
};
export {
w as camelCaseToSentence,
L as getKeyByValue,
S as merge,
i as normalizeString,
V as openFile,
C as replaceHtmlWhitespace,
p as searchRecursively,
F as searchValueForEvery,
k as searchValueForSome
};