@visulima/string
Version:
Functions for manipulating strings.
2 lines (1 loc) • 960 B
JavaScript
;var a=Object.defineProperty;var s=(e,t)=>a(e,"name",{value:t,configurable:!0});var i=Object.defineProperty,u=s((e,t)=>i(e,"name",{value:t,configurable:!0}),"s");const n=/^([A-Z][a-z]*)+$/,o=/[a-z]/i,p=/^[A-Z0-9_]+$/,c=/^[a-z0-9_]+$/,l=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,f=/^[a-z ]+$/,z=/^[A-Z][A-Z0-9]*$/,d=/\s+/,$=/^\d+$/,g=/^[a-z][a-z0-9]*(?:[A-Z][a-z0-9]*)+$/,A=/[.!?;:,](?!\s|$)/,b=u(e=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(!e||!o.test(e))return"unknown";if(e.includes("_"))return p.test(e)?"upper_snake":c.test(e)?"snake":"mixed";if(e.includes("-"))return l.test(e)?"kebab":"mixed";if(f.test(e))return"lower";if(z.test(e))return"upper";const t=e.split(d);return t.length>1&&t.every(r=>n.test(r))||t.length>1&&$.test(t[0])&&n.test(t[1])?"title":t.length>1&&n.test(t[0])&&/^[a-z]/.test(t[1])?"sentence":n.test(e)?"pascal":g.test(e)?"camel":A.test(e)?"unknown":"mixed"},"identifyCase");module.exports=b;