@freik/typechk
Version:
Core set of TS/JS type checking helpers
2 lines (1 loc) • 10.2 kB
JavaScript
var{defineProperty:d,getOwnPropertyNames:Tz,getOwnPropertyDescriptor:Sz}=Object,Oz=Object.prototype.hasOwnProperty;var Qz=new WeakMap,Fz=(z)=>{var L=Qz.get(z),Q;if(L)return L;if(L=d({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function")Tz(z).map((W)=>!Oz.call(L,W)&&d(L,W,{get:()=>z[W],enumerable:!(Q=Sz(z,W))||Q.enumerable}));return Qz.set(z,L),L};var vz=(z,L)=>{for(var Q in L)d(z,Q,{get:L[Q],enumerable:!0,configurable:!0,set:(W)=>L[Q]=()=>W})};var fL={};vz(fL,{toString:()=>wz,toArrayOfString:()=>tz,registerPickling:()=>Rz,isUndefined:()=>U,isTupleOf:()=>nz,isSymbol:()=>P,isString:()=>_,isSimpleObject:()=>A,isSetOfString:()=>jz,isSetOf:()=>s,isSet:()=>O,isRegex:()=>r,isRecordOf:()=>qz,isRecord:()=>Pz,isPromiseOf:()=>lz,isPromise:()=>Hz,isPartialOf:()=>Cz,isOneOf:()=>_z,isObjectOfType:()=>WL,isObjectOfString:()=>oz,isObjectOfExactType:()=>QL,isObjectOf:()=>f,isObjectNonNull:()=>E,isObject:()=>$z,isNumberOrString:()=>Gz,isNumber:()=>B,isNull:()=>Wz,isNonNullable:()=>Zz,isNode:()=>y,isMapOfStrings:()=>sz,isMapOf:()=>t,isMap:()=>S,isIterableOf:()=>zL,isIterable:()=>a,isFunction:()=>H,isEmpty:()=>Xz,isDefined:()=>q,isDate:()=>m,isCustomType:()=>Az,isBrowser:()=>p,isBothOf:()=>k,isBoolean:()=>N,isBigInt:()=>T,isArrayOfString:()=>kz,isArrayOf:()=>M,isArray:()=>G,is3TupleOf:()=>g,is3Tuple:()=>Jz,is2TupleOf:()=>v,is2Tuple:()=>V,is1TupleOf:()=>F,is1Tuple:()=>Ez,hasStrField:()=>K,hasGlobalThis:()=>R,hasFieldType:()=>Y,hasFieldOf:()=>Iz,hasField:()=>Z,chkTupleOf:()=>dz,chkStrField:()=>ez,chkSetOf:()=>az,chkRecordOf:()=>$L,chkRecord:()=>_L,chkPartialOf:()=>ZL,chkOneOf:()=>C,chkObjectOfType:()=>j,chkObjectOfExactType:()=>XL,chkObjectOf:()=>bz,chkMapOf:()=>u,chkFieldType:()=>Mz,chkFieldOf:()=>Dz,chkField:()=>iz,chkCustomType:()=>LL,chkBothOf:()=>gz,chkArrayOf:()=>hz,chk3TupleOf:()=>cz,chk2TupleOf:()=>pz,chk1TupleOf:()=>yz,asString:()=>Yz,asSimpleObject:()=>Bz,asNumberOrString:()=>fz,asNumber:()=>uz,asArrayOfString:()=>rz,as:()=>x,UnsafelyUnpickle:()=>mz,Unpickle:()=>Nz,SafelyUnpickle:()=>gL,RegistrationResult:()=>Kz,RegisterForPickling:()=>uL,Pickle:()=>vL,FreikTypeTag:()=>D});module.exports=Fz(fL);var D=Symbol.for("freik.typetag");function U(z){return z===void 0}function q(z){return!U(z)}function Wz(z){return z===null}function Xz(z){return z===void 0||z===null}function Zz(z){return!Xz(z)}function _z(z,L,Q){return L(z)||Q(z)}function C(z,L){return(Q)=>_z(Q,z,L)}function k(z,L,Q){return L(z)&&Q(z)}function gz(z,L){return(Q)=>k(Q,z,L)}function E(z){return k(z,$z,Zz)}function $z(z){return typeof z==="object"}function G(z){return Array.isArray(z)}function Ez(z){return Array.isArray(z)&&z.length===1}function V(z){return Array.isArray(z)&&z.length===2}function Jz(z){return Array.isArray(z)&&z.length===3}function x(z,L){return(Q)=>z(Q)?Q:L}function _(z){return typeof z==="string"}function Yz(z,L=""){return x(_,L)(z)}function wz(z,L=""){if(_(z))return z;if(B(z)||m(z)||N(z)||T(z))try{let Q=""+z;if(_(Q))return Q}catch{}if(Y(z,"toString",H))try{let Q=z.toString();if(_(Q)&&Q!=="[object Object]")return Q}catch{}return L}function B(z){return typeof z==="number"&&!isNaN(z-0)}function uz(z,L){return x(B,L)(z)}var Gz=C(_,B);function fz(z,L){return x(Gz,L)(z)}function N(z){return typeof z==="boolean"}function m(z){return z instanceof Date}function T(z){return typeof z==="bigint"}function H(z){return typeof z==="function"}function r(z){return z instanceof RegExp}function S(z){return z instanceof Map}function O(z){return z instanceof Set}function M(z,L){if(!G(z))return!1;for(let Q of z)if(!L(Q))return!1;return!0}function hz(z){return(L)=>M(L,z)}function F(z,L){return Ez(z)&&L(z[0])}function yz(z){return(L)=>F(L,z)}function v(z,L,Q){return V(z)&&L(z[0])&&Q(z[1])}function pz(z,L){return(Q)=>v(Q,z,L)}function g(z,L,Q,W){return Jz(z)&&L(z[0])&&Q(z[1])&&W(z[2])}function cz(z,L,Q){return(W)=>g(W,z,L,Q)}function nz(z,L,Q,W){if(q(W))return g(z,L,Q,W);if(q(Q))return v(z,L,Q);return F(z,L)}function dz(z,L,Q){if(q(Q))return(W)=>g(W,z,L,Q);if(q(L))return(W)=>v(W,z,L);return(W)=>F(W,z)}function kz(z){return M(z,_)}function rz(z,L){if(!G(z))return G(L)?L:[];if(G(L))return M(z,_)?z:L;else return L===null||L===void 0?z.filter((Q)=>_(Q)):z.map((Q)=>Yz(Q,L))}function tz(z,L){if(!G(z))return G(L)?L:[];let Q="$$HIGHLY@@UNLIKELY!!",W=z.map((X)=>wz(X,Q));if(G(L))if(W.indexOf(Q)>=0)return L;else return W;return Wz(L)||U(L)?W.filter((X)=>X!==Q):W.map((X)=>X===Q?L:X)}function t(z,L,Q){if(!S(z))return!1;for(let[W,X]of z){if(!L(W))return!1;if(!Q(X))return!1}return!0}function u(z,L){return(Q)=>t(Q,z,L)}function sz(z){return t(z,_,_)}function s(z,L){if(!O(z))return!1;for(let Q of z)if(!L(Q))return!1;return!0}function az(z){return(L)=>s(L,z)}function jz(z){return s(z,_)}function f(z,L){if(!E(z))return!1;for(let Q of[...Object.keys(z),...Object.getOwnPropertySymbols(z)])if(!Y(z,Q,L))return!1;return!0}function bz(z){return(L)=>f(L,z)}function oz(z){return f(z,_)&&Object.getOwnPropertySymbols(z).length===0}function Hz(z){return Z(z,"then")&&Z(z,"catch")&&Z(z,"finally")&&Symbol.species in z.constructor}function lz(z){return Hz(z)}function P(z){return typeof z==="symbol"}function Z(z,L){return E(z)&&L in z}function iz(z){return(L)=>Z(L,z)}function Iz(z,L,Q){return Z(z,L)&&Q(z[L])}function Dz(z,L){return(Q)=>Y(Q,z,L)}var Y=Iz,Mz=Dz;function K(z,L){return Y(z,L,_)}function ez(z){return Mz(z,_)}function a(z){return Z(z,Symbol.iterator)}function zL(z){return Z(z,Symbol.iterator)}function A(z){return z===null||_(z)||B(z)||N(z)||M(z,A)||E(z)&&M(Object.keys(z),C(_,B))&&f(z,A)}function Bz(z,L=null){if(z===null||_(z)||B(z)||N(z))return z;if(G(z))return z.filter((Q)=>A(Q));if(E(z)){let Q={};return Object.keys(z).forEach((W)=>{if(_(W)&&Z(z,W))Q[W]=Bz(z[W])}),Q}return L}function Az(z,L){return Z(z,D)&&z[D]===L}function LL(z){return(L)=>Az(L,z)}function h(z,L,Q,W){if(!E(L))return!1;let X=Object.keys(Q).length,J=Object.keys(L),w=J.length;for(let I of J){if(!Z(L,I))continue;let c=L[I];if(U(c)||L[I]===null){delete L[I],w--;continue}if(Y(W,I,H)){let n=W[I];if(!n(c))return!1;w--}else if(Y(Q,I,H)){let n=Q[I];if(!n(c))return!1;X--,w--}}return X===0&&(w===0||!z)}function QL(z,L,Q={}){return h(!0,z,L,Q)}function WL(z,L,Q={}){return h(!1,z,L,Q)}function j(z,L={}){return(Q)=>h(!1,Q,z,L)}function XL(z,L={}){return(Q)=>h(!0,Q,z,L)}function Cz(z,L){if(!E(z))return!1;let Q=Object.keys(z),W=Q.length;for(let X of Q){if(!Z(z,X))continue;let J=z[X];if(U(J)||z[X]===null){delete z[X],W--;continue}if(Y(L,X,H)){let w=L[X];if(!w(J))return!1;W--}}return W===0}function ZL(z){return(L)=>Cz(L,z)}function Pz(z,L){if(!E(z))return!1;let Q=Object.keys(z),W=Q.length;for(let X of Q){if(!Z(z,X))continue;if(!L(X))return!1;W--}return W===0}function _L(z){return(L)=>Pz(L,z)}function qz(z,L,Q){if(!E(z))return!1;let W=Object.keys(z),X=W.length;for(let J of W){if(!Z(z,J))continue;let w=z[J];if(!L(J)||!Q(w))return!1;X--}return X===0}function $L(z,L){return(Q)=>qz(Q,z,L)}var y=new Function("try {return this===global;}catch(e){ return false;}"),p=new Function("try {return this===window;}catch(e){ return false;}");function R(){return typeof globalThis!=="undefined"}function EL(z){return K(z,"@dataType")&&Y(z,"@dataValue",A)}function JL(z,L){return{"@dataType":z,"@dataValue":L}}function YL(z){return[z["@dataType"],z["@dataValue"]]}var o=Symbol.for("freik.Set"),l=Symbol.for("freik.Map"),i=Symbol.for("freik.Symbol"),e=Symbol.for("freik.RegExp"),zz=Symbol.for("freik.Date"),Lz=Symbol.for("freik.BigInt");function wL(z){return[...z.entries()]}function GL(z){return M(z,V)?new Map(z):void 0}function HL(z){return[...z]}function IL(z){return G(z)?new Set(z):void 0}function DL(z){let L=Symbol.keyFor(z);if(L===void 0)throw new Error("Unable to get a key for a symbol for pickling");return L}function ML(z){return _(z)?Symbol.for(z):void 0}function BL(z){return{source:z.source,flags:z.flags}}function AL(z){if(K(z,"source")&&K(z,"flags"))return new RegExp(z.source,z.flags)}function CL(z){return z.toJSON()}function PL(z){try{return _(z)?new Date(z):void 0}catch{return}}function qL(z){return z.toString()}function UL(z){try{return _(z)?BigInt(z):void 0}catch{return}}var KL=[[S,l],[O,o],[P,i],[r,e],[m,zz],[T,Lz]],RL=new Map([[l,wL],[o,HL],[i,DL],[e,BL],[zz,CL],[Lz,qL]]),VL=new Map([[l,GL],[o,IL],[i,ML],[e,AL],[zz,PL],[Lz,UL]]),Kz;((X)=>{X[X.Success=0]="Success";X[X.Already=1]="Already";X[X.Fail=2]="Fail";X[X.DetectionFailure=3]="DetectionFailure"})(Kz||={});var $=D;function b(z){if(!Z(z,$))return z[$]={to:RL,from:VL},0;if(!Y(z,$,j({to:u(C(P,_),H),from:u(C(P,_),H)})))return 2;return 1}function Rz(){if(R())return b(globalThis);if(p())return b(window);if(y())return b(global);return 3}switch(Rz()){case 2:throw Error(`Invalid <global>[${String($)}] object`);case 3:throw Error("Unable to determine environment for pickling");default:break}function Vz(){if(R()&&E(globalThis)&&Z(globalThis,$)&&Z(globalThis[$],"to"))return globalThis[$].to;else if(y()&&E(global)&&Z(global,$)&&Z(global[$],"to"))return global[$].to;else if(p()&&E(window)&&Z(window,$)&&Z(window[$],"to"))return window[$].to;throw Error("Pickling not registered!")}function Uz(z){return Vz().get(z)}function xL(z,L){Vz().set(z,L)}function xz(){if(R()&&E(globalThis)&&Z(globalThis,$)&&Z(globalThis[$],"from"))return globalThis[$].from;else if(E(process)&&!Z(process,"browser")&&Z(global,$)&&Z(global[$],"from"))return global[$].from;else if(!E(process)&&!Z(process,"browser")&&Z(window,$)&&Z(window[$],"from"))return window[$].from;throw Error("Unpickling not registered!")}function NL(z){return xz().get(z)}function mL(z,L){xz().set(z,L)}function TL(z){if(Y(z,D,P)){let L=z[D],Q=Uz(L);if(Q)return[L,Q];else if(Y(z,"toJSON",H))return[L,(W)=>Y(W,"toJSON",H)?W.toJSON():"ERROR"]}for(let[L,Q]of KL)if(L(z)){let W=Uz(Q);if(W)return[Q,W]}}function SL(z){return NL(Symbol.for(z))}function OL(z,L){let Q=this[z],W=TL(Q);if(W){let[X,J]=W,w=Symbol.keyFor(X);if(!w)return L;return JL(w,J(Q))}else if(a(Q))return[...Q];return L}function FL(z,L){if(EL(L)){let[Q,W]=YL(L),X=SL(Q);if(X){let J=X(W);if(J!==void 0)return J}}return L}function vL(z){return JSON.stringify(z,OL)}function Nz(z){return JSON.parse(z,FL)}function mz(z){return Nz(z)}function gL(z,L){let Q=mz(z);return L(Q)?Q:void 0}function uL(z,L,Q){if(Q)xL(z,Q);mL(z,L)}