UNPKG

chkutils

Version:

package for type checking and various utilities

2 lines (1 loc) 3.53 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=e=>e===!0,C=e=>e===!1,T=e=>typeof e=="function",_=e=>e!=null,w=e=>_(e)&&typeof e.then=="function"&&typeof e.catch=="function",Z=e=>e==null,z=e=>e!==null&&typeof e=="object",$=Array.isArray,b=e=>g.toTypeString(e)==="[object Date]",D=e=>g.toTypeString(e)==="[object Map]",E=e=>g.toTypeString(e)==="[object Set]",h=e=>typeof e=="symbol",j=e=>e===null,I=e=>Array.isArray(e)?e.length===0:!1,L=e=>typeof e!="object"||e===null||Array.isArray(e)?!1:Object.keys(e).length===0,M={isDef:_,isPromise:w,isTrue:k,isFalse:C,isArray:$,isUnDef:Z,isObject:z,isFunction:T,isDate:b,isMap:D,isSet:E,isSymbol:h,isNull:j,isEmptyArray:I,isEmptyObject:L},a=(e,t=new WeakMap)=>{if(e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(Array.isArray(e)){const r=[];return t.set(e,r),r.push(...e.map(s=>a(s,t))),r}if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(e instanceof Promise)return e;if(e instanceof Map){const r=new Map;return t.set(e,r),e.forEach((s,c)=>{r.set(c,a(s,t))}),r}if(e instanceof Set){const r=new Set;return t.set(e,r),e.forEach(s=>{r.add(a(s,t))}),r}const n={};t.set(e,n);for(const r in e)e.hasOwnProperty(r)&&(n[r]=a(e[r],t));return n},R={cloneDeep:a},P=(e,t={text:"Нет данных"})=>e??t,x=Object.prototype.toString,F=e=>x.call(e),g={returnDefaultField:P,toTypeString:F},N=(e,t,n=!1)=>{let r=null;return(...s)=>{const c=()=>{r=null,n||e(...s)},i=n&&!r;r&&clearTimeout(r),r=setTimeout(c,t),i&&e(...s)}},U=(e,t)=>{let n=null;return{start:()=>{n||(n=setInterval(()=>e(),t))},stop:()=>{n&&(clearInterval(n),n=null)}}},V={debounce:N,polling:U};class W{}const q={Checks:W},y={recursive:!1,recursiveInArray:!1,keepTypesOnRecursion:[]},m=(e=y)=>(e.recursive==null?e=y:e.recursiveInArray==null&&(e.recursiveInArray=!1),e),l=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),p=e=>e!=null&&Array.isArray(e),A=(e,t)=>(t||[]).some(n=>e instanceof n);function O(e=""){return e?String(e).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g,"").replace(/([a-z])([A-Z])/g,(t,n,r)=>n+"_"+r.toLowerCase()).replace(/([A-Z]+)([A-Z][a-z])/g,(t,n,r)=>n.toLowerCase()+"_"+r.toLowerCase()).replace(/([a-zA-Z])(\d)/g,(t,n,r)=>n.toLowerCase()+"_"+r).replace(/(\d)([a-zA-Z])/g,(t,n,r)=>n+"_"+r.toLowerCase()).replace(/[^A-Za-z0-9]+|_+/g,"_").toLowerCase():""}function f(e,t=y){if(!l(e))return null;t=m(t);const n={};return Object.keys(e).forEach(r=>{let s=e[r];const c=O(r);t.recursive&&(l(s)?A(s,t.keepTypesOnRecursion)||(s=f(s,t)):t.recursiveInArray&&p(s)&&(s=[...s].map(i=>{let o=i;return l(i)?A(o,t.keepTypesOnRecursion)||(o=f(i,t)):p(i)&&(o=f({key:i},t).key),o}))),n[c]=s}),n}function S(e=""){return e?String(e).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g,"").replace(/[^A-Za-z0-9]+/g,"$").replace(/([a-z])([A-Z])/g,(t,n,r)=>`${n}$${r}`).replace(/([A-Z]+)([A-Z][a-z])/g,(t,n,r)=>`${n}$${r}`).replace(/(\d)([A-Za-z])/g,(t,n,r)=>`${n}$${r}`).toLowerCase().replace(/(\$)(\w)/g,(t,n,r)=>r.toUpperCase()):""}function u(e,t=y){if(!l(e))return null;t=m(t);const n={};return Object.keys(e).forEach(r=>{let s=e[r];const c=S(r);t.recursive&&(l(s)?A(s,t.keepTypesOnRecursion)||(s=u(s,t)):t.recursiveInArray&&p(s)&&(s=[...s].map(i=>{let o=i;return l(i)?A(o,t.keepTypesOnRecursion)||(o=u(i,t)):p(i)&&(o=u({key:i},t).key),o}))),n[c]=s}),n}const B={toSnakeCaseCollection:f,toSnakeCasePrimitive:O,toCamelCasePrimitive:S,toCamelCaseCollection:u};exports._c=q;exports._ch=M;exports._h=g;exports._m=V;exports._p=B;exports._t=R;