UNPKG

@pivanov/utils

Version:

A focused collection of TypeScript utilities for modern web development

9 lines (8 loc) 1.85 kB
/*! * @pivanov/utils v1.0.0 * (c) 2024-present Pavel Ivanov * Released under the MIT License. * https://github.com/pivanov/utils */ var u=(d)=>{return d.trim().toLowerCase().replace(/^[-_\s]+/,"").replace(/[-_\s]+(.)?/g,(f,j)=>j?j.toUpperCase():"")},v=(d)=>{return d.split(/(?=[0-9])|(?<=[0-9])|[^a-zA-Z0-9]+/g).filter(Boolean).map((f)=>f.toLowerCase()).map((f)=>`${f.charAt(0).toUpperCase()}${f.slice(1)}`).join("")},z=(d)=>d.charAt(0).toUpperCase()+d.slice(1),B=(d)=>{if(d==null)return d;return d.normalize("NFKD").replace(/\p{Diacritic}/gu,"").replace(/[^\w\s-]/g," ").replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").replace(/[-_\s]+/g,"-").toLowerCase().replace(/^-+|-+$/g,"").trim()},D=(d)=>{if(d==null)return d;return d.normalize("NFKD").replace(/\p{Diacritic}/gu,"").replace(/[^\w\s-]/g," ").replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/([A-Z])([A-Z][a-z])/g,"$1_$2").replace(/[-_\s]+/g,"_").toLowerCase().replace(/^_+|_+$/g,"").trim()},F=(d)=>{return d.normalize("NFKD").replace(/[^\w\s-]/g," ").split(/[-_\s]+/).filter(Boolean).map((f)=>f.charAt(0).toUpperCase()+f.slice(1).toLowerCase()).join(" ")},G=(d)=>{return d.normalize("NFKD").toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[-\s_]+/g,"-").replace(/^-+|-+$/g,"")},I=(d)=>{return d.charAt(0).toUpperCase()+d.slice(1)},J=(d)=>{return d.charAt(0).toLowerCase()+d.slice(1)},K=(d,f,j="…")=>{if(d.length<=f)return d;if(f<=j.length)return j.slice(0,f);return d.slice(0,f-j.length)+j},q={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},N=(d)=>{return d.replace(/[&<>"']/g,(f)=>q[f])},O=(d)=>{return d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},Q=(d)=>{return d.split(/[-_\s]+/).filter(Boolean)},R=(d)=>{return d.split(/\r\n|\r|\n/)}; export{u as M,v as N,z as O,B as P,D as Q,F as R,G as S,I as T,J as U,K as V,N as W,O as X,Q as Y,R as Z};