@knighttower/utility
Version:
UtilityJs is a utility library that provides a collection of utility functions for various tasks. The library is designed to be easy to use and covers the most common use cases.
1 lines • 6.03 kB
JavaScript
(()=>{"use strict";var t={d:(e,n)=>{for(var r in n){t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})}},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function n(t){switch(typeof t){case"boolean":return t;case"string":return"false"!==t.toLowerCase()&&"0"!==t;case"number":return 0!==t;default:return Boolean(t)}}function r(t){const e=s(t);return null!==e?e:t}function u(t,e=null){return null!==s(t)||"boolean"==typeof t?t:a(t)?e:t}t.r(e),t.d(e,{addQuotes:()=>g,cleanStr:()=>p,convertKeysToSymbols:()=>y,findAndReplaceInArray:()=>b,findNested:()=>d,fixQuotes:()=>m,getArrObjFromString:()=>j,getChunks:()=>S,getDirectivesFromString:()=>w,getMatchBlock:()=>A,getMatchInBetween:()=>O,getObjectFromPath:()=>h,removeQuotes:()=>$,setExpString:()=>_,setLookUpExp:()=>x,setWildCardString:()=>k,startAndEndWith:()=>E,wildCardStringSearch:()=>v});const o=(t=20)=>{const e=()=>Math.random().toString(36).substring(2,15);t=t||40;for(var n="",r=0;r<t/3+1;r++){n+=e()}return n.substring(0,t)};function i(){return"id__"+o(8)+"__"+(new Date).getTime()}const c=i;function a(t){return null==t||("string"==typeof t||Array.isArray(t)?0===t.length:t instanceof Map||t instanceof Set?0===t.size:ArrayBuffer.isView(t)?0===t.byteLength:"object"==typeof t&&0===Object.keys(t).length)}function s(t){const e=typeof t;switch(t){case null:case void 0:case"":return null;case"0":case 0:return 0;default:if(!("number"!==e&&"string"!==e||"number"!=typeof t&&Number.isNaN(Number(t)))){return+t}}return null}function l(t,e){if(null===t){return e?null===e||"null"===e:"null"}let n;switch(typeof t){case"number":case"string":case"boolean":case"undefined":case"bigint":case"symbol":case"function":n=typeof t;break;case"object":n=Array.isArray(t)?"array":"object";break;default:n="unknown"}if(e){if(e.includes("|")){for(let t of e.split("|")){if(n===t){return t}}return!1}return e===n}return n}function f(t){const e=t.match(/^(\{.*\}|\[.*\])$/);return e?e[0].slice(1,-1).trim():t}function g(t,e='"'){return`${e}${t}${e}`}function p(t,...e){if(t){return"string"!=typeof t?t:e.reduce((t,e)=>{const n=e instanceof RegExp?e:new RegExp(_(e));return t.replace(n,"")},t).trim()}}function y(t){if(null===u(t,null)){return{}}const e={},n={};for(const r in t){const u=Symbol(r);e[u]=t[r],n[r]=u}return e.keyToSymbolMap=n,e}function b(t,e,n){let r=!1;const u=t.map(t=>{if(Array.isArray(t)){const u=b(t,e,n);return u?(r=!0,u):t}return t===e?(r=!0,Array.isArray(n)?n.map(t=>Array.isArray(t)?t:t.trim()):n):t});return r?u:null}function d(t,e="[",n="]"){if("string"!=typeof t){return t}const r=t.lastIndexOf(e);if(-1===r){return null}const u=t.substring(r),o=u.indexOf(n);return-1===o?null:u.substring(0,o+1)}function m(t,e='"'){return"string"!=typeof t?t:t.replace(/`|'|"/g,e)}function h(t,e=window){return t.split(".").reduce((t,e)=>t&&t[e],e)}function j(t){if(l(t,"object")||l(t,"array")||!t){return t}const e=t=>E(t,"{","}"),n=t=>E(t,"[","]"),o=(e(t)?"object":null)||(n(t)?"array":null);if(!o){return t}const i={},a=t=>{if(!t){return}let r=(t=>{const e=d(t,"{","}"),n=d(t,"[","]");return t.indexOf(e)>t.indexOf(n)?e||null:n||null})(f(t));if(!r){return}return t=((t,r)=>{let u=`__${c()}__`,o=(e(r)?"object":null)||(n(r)?"array":null)||"string";return t=t.replace(r,u),i[u]={type:o,matched:r},t})(t,r),a(t)||t},s=(t,e)=>{t=f(t);let n="object"===e?{}:[];return S(t).forEach((t,o)=>{const c=t.includes(":")&&"object"===e,a=c?S(t,":"):[],l=$(u(a[0],o));if((t=c?a[1]:t)in i){const e=i[t];t=s(e.matched,e.type)}t=r($(t)),"object"===e?n[l]=t:n.push(t)}),n};return s(a(t)||t,o)}function w(t){const e=t;if(!u(e)){return null}const n=(t=null,e=null)=>({type:t,directive:e}),r=/^\[((.|\n)*?)\]$/gm,o=/^\{((.|\n)*?)\:((.|\n)*?)\}$/gm,i=/^([a-zA-Z]+)(\()(\.|\#)(.*)(\))/g,c=/([a-zA-Z]+)\.(.*?)\(((.|\n)*?)\)/gm,a=/([a-zA-Z]+)\[((.|\n)*?)\]\(((.|\n)*?)\)/gm;let s=typeof e;if("object"===s||"array"===s){return n(s,e)}switch(!0){case!!e.match(r):s="array";break;case!!e.match(o):s="object";break;case!!e.match(i):const t=e.split("(")[0].trim();return n("idOrClassWithDirective",{[t]:O(e,"(",")")});case!!e.match(c):case!!e.match(a):s="dotObject";break;default:return n("string",e)}if("array"===s||"object"===s){let t=m(e);try{return n(s,JSON.parse(t))}catch(t){}return n(s,j(t))}if("dotObject"===s){let t,r,u;const o={};return S(e,"&&").forEach(e=>{e.match(a)?(t=O(e,"](",")"),r=O(e,"[","]"),u=e.split("[")[0].trim()):(t=O(e,"(",")"),e=e.replace(A(e,"(",")"),""),[u,r]=S(e,".")),t=j(t),o[u]||(o[u]={}),S(r,"|").forEach(e=>{o[u][e]=t})}),n("dotObject",o)}}function A(t,e,n,r=!1){if("string"!=typeof t){return t}e=_(e),n=_(n);let u=new RegExp(x(e,n),"gm");const o=t.match(u);return o?r?o:o[0]:null}function S(t,e=","){if("string"!=typeof t){return t}if(a(t)){return[]}let n=(t=p(t)).split(e).map(t=>p(t));return 1===n.length&&""===n[0]?[t]:n}function O(t,e,n,r=!1){if("string"!=typeof t){return t}const u=A(t,e,n,r)??(r?[]:t);return r?u.map(t=>p(t,e,n)):p(u,e,n)}function $(t){return"string"!=typeof t?t:t.replace(/`|'|"/g,"")}function E(t,e=null,n=null){return(!e||t.startsWith(e))&&(!n||t.endsWith(n))}function _(t){return t instanceof RegExp?t:t.split("").map(t=>["$","^",".","*","+","?","(",")","[","]","{","}","|","\\"].includes(t)?`\\${t}`:t).join("")}function x(...t){if(t.length<2){throw new Error("You need to pass at least two arguments")}let e="";return t.forEach((t,n)=>{t instanceof RegExp&&(t=t.source),0===n?e=t:e+=`((.|\n)*?)${t}`}),e}function k(t,e=!1,r=!1){if("string"!=typeof t){return t}if(!t){return null}e=n(e),r=n(r);let u=t.replace(/([.+?^${}()|\[\]\/\\])/g,"\\$&"),o=e?"^":"",i=r?"$":"";return u=u.replace(/\*\*/g,"[_g_]").replace(/\*/g,"(.*?)").replace(/\[_g_\]/g,".*"),`${o}${u}${i}`}function v(t,e,n=!1,r=!1){if(!t||!e){return null}const o=new RegExp(k(t,n,r));if("string"==typeof e){return u(e.match(o))}let i=[];return i=e.filter(t=>o.test(t)),u(i)}window.helpers=e})();