UNPKG

@studiohyperdrive/utils

Version:
2 lines (1 loc) 2.33 kB
(function(l,s){typeof exports=="object"&&typeof module<"u"?s(exports):typeof define=="function"&&define.amd?define(["exports"],s):(l=typeof globalThis<"u"?globalThis:l||self,s(l["js-utils"]={}))})(this,function(l){"use strict";const s=e=>!e||typeof e!="string"?"":e.match(/[A-Z][a-z]+/g).map((r,t)=>t===0?r:r.toLowerCase()).join(" ").trim(),j=e=>typeof e!="string"?e:e.replaceAll(/[\s\u00A0]/gi," "),u=e=>e.normalize("NFD").replace(/([\u0300-\u036f])/g,""),O=(e,r,t=!0,n=!0)=>f(e,r,t,n,"some"),A=(e,r,t=!0,n=!0)=>f(e,r,t,n,"every"),f=(e,r,t=!0,n=!0,c)=>{if(!r.trim())return!0;if(!e)return!1;const o=r.split(" ").filter(a=>!!a),E=u(e),m=a=>{const b=t?E:e,g=t?u(a):a;return n?b.toLowerCase().includes(g.toLowerCase()):b.includes(g)};return c==="some"?o.some(m):o.every(m)},S=(e,r)=>{if(!e||Object.values(e).length===0)return;const t=Object.values(e).indexOf(r);return Object.keys(e)[t]};function p(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const r=Object.getPrototypeOf(e);return r===null||r===Object.prototype};const y=F,d=(e,r,t)=>{let n=e;return r.cleanArrays===!0&&(n=e.map(c=>i(c,r,t+1)).filter(Boolean)),t===0||r.preserveArrays===!0||n.length>0?n:null},i=(e,r,t)=>{const n={};if(!y(e))return Array.isArray(e)?d(e,r,t):e;for(const c of Object.keys(e))if(!(e[c]===null||e[c]===void 0))if(Array.isArray(e[c])){const o=d(e[c],r,t+1);o!==null&&(n[c]=o)}else if(y(e[c])){const o=i(e[c],r,t+1);o!==null&&Object.keys(o).length>0&&(n[c]=o)}else e[c]!==""&&(n[c]=e[c]);return t>0&&Object.keys(n).length===0?null:n};var V=(e,r)=>{const t={preserveArrays:!0,cleanArrays:!0,...r};return i(e,t,0)};const k=p(V),w=(e,...r)=>r.reduce((t,n)=>{const[c,o]=n;return o==null||typeof o=="object"&&Object.keys(k(o)).length===0?t:{...t,[c]:o}},e),h=(e,r)=>{let t;return e.forEach(n=>{t||(r(n)?t=n:t=h(n.children,r))}),t},C=(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")}};l.camelCaseToSentence=s,l.getKeyByValue=S,l.merge=w,l.normalizeString=u,l.openFile=C,l.replaceHtmlWhitespace=j,l.searchRecursively=h,l.searchValueForEvery=A,l.searchValueForSome=O,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});