UNPKG

@alessiofrittoli/web-utils

Version:
1 lines 2.4 kB
'use strict';var dateUtils=require('@alessiofrittoli/date-utils'),mathUtils=require('@alessiofrittoli/math-utils');var b=t=>t instanceof Promise;var f=t=>typeof t=="string"||t instanceof String;var l=t=>t.trim().length>0,m=t=>!l(t);var i=t=>t.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&");var $=t=>t.charAt(0).toUpperCase()+t.slice(1),v=t=>t.charAt(0).toLowerCase()+t.slice(1),D=t=>E(t).replace(/[-_\s](.)/g,(e,n)=>n.toUpperCase()),E=t=>t.replace(/\s+/g,"-").replace(/_/g,"-").replace(/([A-Z])/g,"-$1").replace(/[^a-zA-Z0-9-]/g,"-").replace(/--+/g,"-").toLowerCase(),Z=t=>b(t)||typeof t=="function"?"":t instanceof Date&&dateUtils.isValidDate(t)?t.toISOString():t instanceof Map||t instanceof Headers?JSON.stringify(Array.from(t.entries())):typeof t=="object"?JSON.stringify(t):t?.toString()||"",O=t=>{if(t&&!(f(t)&&m(t))){if(mathUtils.isNumeric(t))return parseFloat(t);try{let e=new Date(t);return dateUtils.isValidDate(e)?e:JSON.parse(t)}catch{return t}}},j=(t,e,n=e)=>{if(typeof t!="string")throw new TypeError("Input must be a string.");let r=n instanceof RegExp?n:new RegExp(`^[${i(n)}]?`);return t.replace(r,e)},P=(t,e)=>{if(typeof t!="string")throw new TypeError("Input must be a string.");let n=e instanceof RegExp?e:new RegExp(`^[${i(e)}]+`);return t.replace(n,"")},k=(t,e,n=e)=>{if(typeof t!="string")throw new TypeError("Input must be a string.");let r=n instanceof RegExp?n:new RegExp(`[${i(n)}]?$`);return t.replace(r,e)},I=(t,e)=>{if(typeof t!="string")throw new TypeError("Input must be a string.");let n=e instanceof RegExp?e:new RegExp(`[${i(e)}]?$`);return t.replace(n,"")},a=t=>Array.isArray(t)?t.filter(Boolean).map(e=>{if(typeof e!="string"){if(!e.email)return null;let n=e.name?.trim(),r=e.email.trim();return n?`${n}<${r}>`:r}return e.trim()}).filter(Boolean).join(","):a([t]),V=(t={})=>{let{to:e,body:n,subject:r,cc:p,bcc:g}=t,s=new URLSearchParams;if(n&&s.append("body",n),r&&s.append("subject",r),p){let o=a(p);o&&s.append("cc",o);}if(g){let o=a(g);o&&s.append("bcc",o);}return ["mailto:",e&&a(e),s.size>0&&`?${s.toString().replace(/\+/g," ")}`].filter(Boolean).join("")};exports.addLeadingCharacter=j;exports.addTrailingCharacter=k;exports.emailDataToString=V;exports.lcFirst=v;exports.parseValue=O;exports.recipientsToString=a;exports.removeLeadingCharacter=P;exports.removeTrailingCharacter=I;exports.stringifyValue=Z;exports.toCamelCase=D;exports.toKebabCase=E;exports.ucFirst=$;