UNPKG

@catgirls/better-format

Version:

Make strings actually look good.

2 lines 1.57 kB
var g=[],R=["for","and","nor","but","or","yet","so"],C=["a","an","the"],v=["aboard","about","above","across","after","against","along","amid","among","anti","around","as","at","before","behind","below","beneath","beside","besides","between","beyond","but","by","concerning","considering","despite","down","during","except","excepting","excluding","following","for","from","in","inside","into","like","minus","near","of","off","on","onto","opposite","over","past","per","plus","regarding","round","save","since","than","through","to","toward","towards","under","underneath","unlike","until","up","upon","versus","via","with","within","without"],l=new Set([...R,...C,...v]);var o=`[^\\s'\u2019\\(\\)!?;:"-]`,u=new RegExp(`(?:(?:(\\s?(?:^|[.\\(\\)!?;:"-])\\s*)(${o}))|(${o}))(${o}*[\u2019']*${o}*)`,"g"),d=e=>e.map(n=>[new RegExp(`\\b${n}\\b`,"gi"),n]),f=e=>{let n=e[0];return /\s/.test(n)?e.slice(1):/[\(\)]/.test(n)?null:e},b=(e,n)=>(n?.enableDashCleaning&&(e=e.replace(/-/g," ")),n?.enableUnderscoreCleaning&&(e=e.replace(/_/g," ")),n?.excludeWords&&n.excludeWords.forEach(t=>{e=e.replace(new RegExp(`\\b${t}\\b`,"gi"),t);}),e);var y=(e,n)=>{n={enableDashCleaning:true,enableUnderscoreCleaning:true,...n},e=b(e,n),e=e.toLowerCase().replace(u,(r,a="",i,s,c,h,m)=>{let w=r.length+h>=m.length,p=f(r);if(!p)return r;if(!i){let E=s+c;if(l.has(E)&&!w)return p}return a+(s||i).toUpperCase()+c});let t=n?.excludeWords||[],x=[...g,...t];return d(x).forEach(([r,a])=>{e=e.replace(r,a);}),e};export{y as default};//# sourceMappingURL=index.mjs.map //# sourceMappingURL=index.mjs.map