@js-utility/string
Version:
A lightweight and powerful collection of string utility functions for Node.js - trimming, casing, formatting, and more.
2 lines (1 loc) • 4.68 kB
JavaScript
var p=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var{plural:S,singular:C}=p("pluralize"),{AES:g,SHA256:l,enc:w,lib:A}=p("crypto-js"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZ",f="abcdefghijklmnopqrstuvwxyz",h=u+f,m="0123456789",d="!@#$%^&*",x=h+m,N=x+d,y=process.env.ENCRYPTION_SECRET||"S3cR3TKeY#",W=/\[({\s*"a"\s*:\s*"[^"]*"\s*,.*?})\]/g,e=(r,t="")=>{var n;return r==null||typeof r=="number"&&(isNaN(r)||r==1/0)||r instanceof Date&&isNaN(r.getTime())?t:typeof r=="string"?r:(typeof r=="object"&&(r=JSON.stringify(r)),(n=r==null?void 0:r.toString())!=null?n:t)},o=r=>e(r).trim(),Z=r=>r==null?!0:typeof r=="string"&&r.trim().length===0,v=r=>o(r).toUpperCase(),z=r=>o(r).toLowerCase(),H=r=>(r=e(r),r.charAt(0).toUpperCase()+r.slice(1)),O=r=>e(r).replace(/\b\w/g,t=>t.toUpperCase()),_=r=>e(r).split("").reverse().join(""),U=(r,t)=>(r=e(r),t<0?"...":r.length<=t?r:t<=3?".".repeat(t):r.slice(0,t-3)+"..."),$=r=>e(r).replace(/\s+/g,""),J=r=>e(r).replace(/\s+/g," "),M=(r,t,n)=>{let s=e(r);return t?s.split(t).join(n):s},q=(r,t)=>e(r).split(t),I=(r,t)=>t<=0?"":e(r).repeat(t),L=(r,t)=>e(r).charAt(t),P=r=>e(r).split(""),k=(r,t)=>e(r).startsWith(t),B=(r,t)=>e(r).endsWith(t),Y=r=>{let t=e(r).trim();return t?/[^a-zA-Z0-9]/.test(t)?t.split(/[^a-zA-Z0-9]+/).filter(Boolean).map((s,i)=>i===0?s.toLowerCase():s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()).join(""):t.charAt(0).toLowerCase()+t.slice(1):""},D=r=>{var t,n,s;return(s=(n=(t=o(r).match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+|[0-9]+/g))==null?void 0:t.map(i=>i.toLowerCase()))==null?void 0:n.join("-"))!=null?s:""},K=r=>{var t,n,s;return(s=(n=(t=o(r).match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+|[0-9]+/g))==null?void 0:t.map(i=>i.toLowerCase()))==null?void 0:n.join("_"))!=null?s:""},F=r=>e(r,"").replace(/(^|\s)(\w)/g,(n,s,i)=>s+i.toUpperCase()),G=r=>e(r).replace(/<\/?[^>]+(>|$)/g,""),Q=(r,t,n=" ")=>e(r).padStart(t,n),V=(r,t,n=" ")=>e(r).padEnd(t,n),X=(r,t,n=" ")=>{let s=e(r),i=t-s.length;if(i<=0)return s;let c=Math.floor(i/2),b=i-c;return n.repeat(c)+s+n.repeat(b)},rr=r=>{if(r==null)return"";let t=typeof r=="string"?r:String(r);return t===""?"":[...new Set(t)].join("")},tr=r=>{if(r==null||r.trim()==="")return"";let t=r.split(/\s+/);return[...new Set(t)].join(" ")},nr=r=>e(r).replace(/(.)\1+/g,"$1"),er=r=>{let t=e(r,"").trim();t=t.replace(/\s+/g," ");let n=/\b(\w+)\b\s+\1\b/g;for(;n.test(t);)t=t.replace(n,"$1");return t.trim()},sr=(r,...t)=>{let n=r==null?"":String(r);return t.filter(Boolean).map(String).join(n)};function R(r){switch(r){case"upper":return u;case"lower":return f;case"alpha":return h;case"number":return m;case"special":return d;case"alphanumeric":return x;default:return N}}function ir(r=10,t="mix"){let n="",s=R(t);for(let i=0;i<r;i++){let c=Math.floor(Math.random()*s.length);n+=s.charAt(c)}return n}var or=r=>S(e(r)),cr=r=>C(e(r)),ar=r=>o(z(r)).normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9\s-]/g,"").replace(/[\s-]+/g,"-").replace(/^-+|-+$/g,""),pr=r=>e(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),gr=r=>e(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'");function lr(r){let t=A.WordArray.random(16).toString(),n=l(r+t).toString();return t+"$"+n}function ur(r,t){let[n,s]=t.split("$");return l(r+n).toString()===s}var a="ENC:";function E(r){let t=g.encrypt(r,y).toString();return a+t}function fr(r){return E(JSON.stringify(r))}function j(r){if(!r||!r.startsWith(a))return r;let t=r.slice(a.length);return g.decrypt(t,y).toString(w.Utf8)}function hr(r){let t=j(r);return(()=>{try{return t?JSON.parse(t):void 0}catch(n){return}})()}export{W as CalcPlaceholderRegex,Y as camelCase,H as capitalize,O as capitalizeEachWord,L as charAt,ur as compareHash,j as decrypt,hr as decryptJSON,E as encrypt,fr as encryptJSON,B as endsWith,pr as escapeHtml,lr as hash,Z as isEmptyStr,sr as joinStrings,D as kebabCase,z as lower,X as padBoth,Q as padLeft,V as padRight,or as pluralize,ir as random,er as removeConsecutiveDuplicateWords,nr as removeConsecutiveDuplicates,rr as removeDuplicateChars,tr as removeDuplicateWords,$ as removeWhitespace,I as repeat,M as replaceAll,J as replaceMultipleSpaces,_ as reverse,cr as singularize,ar as slugify,K as snakeCase,q as split,k as startsWith,e as stringify,G as stripHtmlTags,F as titleCase,P as toCharArray,o as trim,U as truncate,gr as unescapeHtml,v as upper};