sly-utils
Version:
sly-utils is a modular and efficient JavaScript utility library designed to simplify complex tasks.
2 lines (1 loc) • 4.87 kB
JavaScript
var version=function(e){"use strict";const r=e=>(Reflect.ownKeys(e).forEach((t=>{const a=e[t];a&&"object"==typeof a&&r(a)})),Object.freeze(e)),t=(e,r,a={})=>{for(let o in e){let n=o[0].toUpperCase()+o.substring(1),c=r?r+n:o;null===e[o]?a[r?r+o[0].toUpperCase()+o.substring(1):o]=null:"object"==typeof e[o]?t(e[o],c,a):a[c]=e[o]}return a};function a(e,r){return this.splice(r,0,this.splice(e,1)[0]),this}const o=(e,r)=>{if(Array.isArray(e))return e.map((e=>"object"==typeof e&&null!==e?o(e,r):e));{let t={};for(let a in e)e.hasOwnProperty(a)&&(Array.isArray(e[a])?t[r(a)]=e[a].map((e=>"object"==typeof e&&null!==e?o(e,r):e)):null===e[a]?t[r(a)]=null:"object"==typeof e[a]?t[r(a)]=o(e[a],r):t[r(a)]=e[a]);return t}};return e.addMoveToArrayPrototype=function(){Array.prototype.move=a},e.areSameArrays=(e,r)=>{if(e.length!==r.length)return!1;const t=e.reduce(((e,r)=>{const t=typeof r+":"+r;return e[t]=(e[t]||0)+1,e}),{}),a=r.reduce(((e,r)=>{const t=typeof r+":"+r;return e[t]=(e[t]||0)+1,e}),{});for(const e in t)if(t[e]!==a[e])return!1;return!0},e.backDate=(e,r="/",t="DDMMYYYY")=>{const a=new Date(Date.now()-24*e*60*60*1e3),o=String(a.getDate()).padStart(2,"0"),n=String(a.getMonth()+1).padStart(2,"0"),c=a.getFullYear(),l={MMDDYYYY:`${n}${r}${o}${r}${c}`,YYYYMMDD:`${c}${r}${n}${r}${o}`,DDMMYYYY:`${o}${r}${n}${r}${c}`};return l[t]||l.DDMMYYYY},e.camelToKebab=e=>e.replace(/\.?([A-Z])/g,(e=>"-"+e.toLowerCase().replace(/^_/,""))),e.camelToPascal=e=>e.replace(/(^\w|_\w)/g,(e=>e.replace("_","").toUpperCase())),e.camelToSnake=e=>e.replace(/\.?([A-Z])/g,(e=>"_"+e.toLowerCase().replace(/^_/,""))),e.chunk=(e,r)=>!e||0===e.length||r<=0?[]:(r=Math.ceil(r),Array.from({length:Math.ceil(e.length/r)},((t,a)=>e.slice(a*r,a*r+r)))),e.compareStrings=(e,r)=>{const t=e=>e.replace(/[^a-zA-Z0-9]/g,"").toLowerCase();e=t(e),r=t(r);const a=e.length,o=r.length;if(0===a)return o;if(0===o)return a;const n=Array.from({length:a+1},((e,r)=>Array(o+1).fill(0)));for(let e=0;e<=a;e++)n[e][0]=e;for(let e=0;e<=o;e++)n[0][e]=e;for(let t=1;t<=a;t++)for(let a=1;a<=o;a++){const o=e[t-1]===r[a-1]?0:1;n[t][a]=Math.min(n[t-1][a]+1,n[t][a-1]+1,n[t-1][a-1]+o)}return n[a][o]},e.deepFreeze=r,e.doesExist=(e,r,t)=>{const a=e=>"object"==typeof e&&null!==e&&(Array.isArray(e)?e.some(a):e[r]==t||Object.values(e).some((e=>a(e))));return e.some(a)},e.escapeHtml=e=>"string"!=typeof e?"":e=e.toString().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""),e.flattenObject=t,e.friendlyUrlString=e=>(e=e||"").trim().split("").map((e=>{let r="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ".indexOf(e);return r>-1?"aaaaaaaceeeeiiiidnooooouuuuysaaaaaaaceeeeiiiidnooooouuuuyy"[r]:e})).join("").toLowerCase().replace(/[&?]/gi,"").replace(/\s\s/g,"-").replace(/\s/g,"-").replace(/-+/g,"-").replace(/[^a-z0-9-]/gi,"").trim(),e.groupByArrayOfObjects=(e,r)=>e.reduce(((e,t)=>"object"!=typeof t||null===t||void 0===t[r]?e:Object.assign(e,{[t[r]]:(e[t[r]]||[]).concat(t)})),{}),e.intersection=(e,r)=>{const t=new Set(e);return r.filter((e=>t.has(e)))},e.jsonToMap=e=>{const r=JSON.parse(e);return new Map(Object.entries(r))},e.kebabToCamel=e=>e.replace(/-./g,(e=>e[1].toUpperCase())),e.kebabToPascal=e=>e.replace(/(-\w)/g,(e=>e[1].toUpperCase())).replace(/^./,(e=>e.toUpperCase())),e.kebabToSnake=e=>e.replace(/-/g,"_"),e.mapToJson=e=>{if(!(e instanceof Map))throw new TypeError("Input should be a Map");return JSON.stringify(Object.fromEntries(e))},e.pascalToCamel=e=>e.replace(/^./,(e=>e.toLowerCase())),e.pascalToKebab=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase(),e.pascalToSnake=e=>e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,""),e.pluck=(e,r)=>e.map((e=>e&&"object"==typeof e?e[r]:void 0)),e.shuffle=e=>{const r=[...e];for(let e=r.length-1;e>0;e--){const t=Math.floor(Math.random()*(e+1));[r[e],r[t]]=[r[t],r[e]]}return r},e.snakeToCamel=e=>e.replace(/([-_][a-z])/g,(e=>e.toUpperCase().replace("_","").replace("-",""))),e.snakeToKebab=e=>e.replace(/_/g,"-"),e.snakeToPascal=e=>e.replace(/(_\w)/g,(e=>e[1].toUpperCase())).replace(/^./,(e=>e.toUpperCase())),e.sortArrayOfObjects=(e,r,t="ASC")=>{const a="DESC"===t?-1:1;return e.slice().sort(((e,t)=>e[r]>t[r]?a:-a))},e.stripHtmlTags=e=>(e=e.toString()).replace(/<[^>]*>/g,""),e.transformKeys=o,e.uniqArrayOfObjects=e=>{const r=new Set;return e.filter((e=>{const t=e&&"object"==typeof e?JSON.stringify(e):String(e);return!r.has(t)&&(r.add(t),!0)}))},e.uuid=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const r=16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)})),e.uuidShort=()=>"xxxxxxxx-xxxx".replace(/[xy]/g,(function(e){const r=16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)})),Object.defineProperty(e,"__esModule",{value:!0}),e}({});