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