UNPKG

casex

Version:

All in one, self expressive function for string case styles

2 lines (1 loc) 692 B
function n(t){let e=t.substring(0,2),r=t.substring(2,t.length-2),s=t.substring(t.length-2);return{firstSyllable:e,glue:r,secondSyllable:s}}function i({text:t,letter:e}){return e==="-"?"":e==="*"?t:e===e.toUpperCase()?t.toUpperCase():t.toLowerCase()}function a({text:t,syllable:e}){return i({text:t[0],letter:e[0]})+i({text:t.substring(1),letter:e[1]})}var p="A-Z\\s_-";function l({text:t,delimiters:e}){let r=new RegExp("([A-Z]?)([^"+(e||p)+"]*)","g");return(t.match(r)||[]).filter(Boolean)}function d(t){let{text:e,pattern:r,delimiters:s}=t,{firstSyllable:o,glue:g,secondSyllable:c}=n(r);return l({text:e,delimiters:s}).map((x,m)=>a({text:x,syllable:m===0?o:c})).join(g)}export{d as casex};