@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) • 5.46 kB
JavaScript
;var a=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var R=(r,t)=>{for(var n in t)a(r,n,{get:t[n],enumerable:!0})},E=(r,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of N(t))!z.call(r,i)&&i!==n&&a(r,i,{get:()=>t[i],enumerable:!(s=A(t,i))||s.enumerable});return r};var j=r=>E(a({},"__esModule",{value:!0}),r);var Sr={};R(Sr,{CalcPlaceholderRegex:()=>O,camelCase:()=>G,capitalize:()=>$,capitalizeEachWord:()=>J,charAt:()=>Y,compareHash:()=>xr,decrypt:()=>C,decryptJSON:()=>br,encrypt:()=>S,encryptJSON:()=>yr,endsWith:()=>F,escapeHtml:()=>hr,hash:()=>dr,isEmptyStr:()=>_,joinStrings:()=>ar,kebabCase:()=>Q,lower:()=>b,padBoth:()=>er,padLeft:()=>tr,padRight:()=>nr,pluralize:()=>lr,random:()=>gr,removeConsecutiveDuplicateWords:()=>cr,removeConsecutiveDuplicates:()=>or,removeDuplicateChars:()=>sr,removeDuplicateWords:()=>ir,removeWhitespace:()=>I,repeat:()=>B,replaceAll:()=>P,replaceMultipleSpaces:()=>L,reverse:()=>M,singularize:()=>ur,slugify:()=>fr,snakeCase:()=>V,split:()=>k,startsWith:()=>K,stringify:()=>e,stripHtmlTags:()=>rr,titleCase:()=>X,toCharArray:()=>D,trim:()=>o,truncate:()=>q,unescapeHtml:()=>mr,upper:()=>U});module.exports=j(Sr);var{plural:T,singular:W}=require("pluralize"),{AES:g,SHA256:l,enc:Z,lib:v}=require("crypto-js"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZ",f="abcdefghijklmnopqrstuvwxyz",h=u+f,m="0123456789",d="!@#$%^&*",x=h+m,H=x+d,y=process.env.ENCRYPTION_SECRET||"S3cR3TKeY#",O=/\[({\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(),_=r=>r==null?!0:typeof r=="string"&&r.trim().length===0,U=r=>o(r).toUpperCase(),b=r=>o(r).toLowerCase(),$=r=>(r=e(r),r.charAt(0).toUpperCase()+r.slice(1)),J=r=>e(r).replace(/\b\w/g,t=>t.toUpperCase()),M=r=>e(r).split("").reverse().join(""),q=(r,t)=>(r=e(r),t<0?"...":r.length<=t?r:t<=3?".".repeat(t):r.slice(0,t-3)+"..."),I=r=>e(r).replace(/\s+/g,""),L=r=>e(r).replace(/\s+/g," "),P=(r,t,n)=>{let s=e(r);return t?s.split(t).join(n):s},k=(r,t)=>e(r).split(t),B=(r,t)=>t<=0?"":e(r).repeat(t),Y=(r,t)=>e(r).charAt(t),D=r=>e(r).split(""),K=(r,t)=>e(r).startsWith(t),F=(r,t)=>e(r).endsWith(t),G=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):""},Q=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:""},V=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:""},X=r=>e(r,"").replace(/(^|\s)(\w)/g,(n,s,i)=>s+i.toUpperCase()),rr=r=>e(r).replace(/<\/?[^>]+(>|$)/g,""),tr=(r,t,n=" ")=>e(r).padStart(t,n),nr=(r,t,n=" ")=>e(r).padEnd(t,n),er=(r,t,n=" ")=>{let s=e(r),i=t-s.length;if(i<=0)return s;let c=Math.floor(i/2),w=i-c;return n.repeat(c)+s+n.repeat(w)},sr=r=>{if(r==null)return"";let t=typeof r=="string"?r:String(r);return t===""?"":[...new Set(t)].join("")},ir=r=>{if(r==null||r.trim()==="")return"";let t=r.split(/\s+/);return[...new Set(t)].join(" ")},or=r=>e(r).replace(/(.)\1+/g,"$1"),cr=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()},ar=(r,...t)=>{let n=r==null?"":String(r);return t.filter(Boolean).map(String).join(n)};function pr(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 H}}function gr(r=10,t="mix"){let n="",s=pr(t);for(let i=0;i<r;i++){let c=Math.floor(Math.random()*s.length);n+=s.charAt(c)}return n}var lr=r=>T(e(r)),ur=r=>W(e(r)),fr=r=>o(b(r)).normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9\s-]/g,"").replace(/[\s-]+/g,"-").replace(/^-+|-+$/g,""),hr=r=>e(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),mr=r=>e(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'");function dr(r){let t=v.WordArray.random(16).toString(),n=l(r+t).toString();return t+"$"+n}function xr(r,t){let[n,s]=t.split("$");return l(r+n).toString()===s}var p="ENC:";function S(r){let t=g.encrypt(r,y).toString();return p+t}function yr(r){return S(JSON.stringify(r))}function C(r){if(!r||!r.startsWith(p))return r;let t=r.slice(p.length);return g.decrypt(t,y).toString(Z.Utf8)}function br(r){let t=C(r);return(()=>{try{return t?JSON.parse(t):void 0}catch(n){return}})()}0&&(module.exports={CalcPlaceholderRegex,camelCase,capitalize,capitalizeEachWord,charAt,compareHash,decrypt,decryptJSON,encrypt,encryptJSON,endsWith,escapeHtml,hash,isEmptyStr,joinStrings,kebabCase,lower,padBoth,padLeft,padRight,pluralize,random,removeConsecutiveDuplicateWords,removeConsecutiveDuplicates,removeDuplicateChars,removeDuplicateWords,removeWhitespace,repeat,replaceAll,replaceMultipleSpaces,reverse,singularize,slugify,snakeCase,split,startsWith,stringify,stripHtmlTags,titleCase,toCharArray,trim,truncate,unescapeHtml,upper});