ixfx
Version:
Bundle of ixfx libraries
1 lines • 7.89 kB
JavaScript
import{n as e}from"./chunk-BKBlUVio.js";function t(e){return typeof e==`string`?e:e instanceof Error?e.message:String(e)}function n(...e){let t=e.filter(e=>o(e));if(t.length===0)return;let n=t.map(e=>d(e));throw Error(n.join(`, `))}function r(...e){for(let t of e){if(t===void 0)continue;if(typeof t==`boolean`){if(t)continue;throw c.fromString(`Guard failed: false result`)}let e=typeof t==`object`?t:t();if(e!==void 0&&!e.success)throw l(e)}return!0}function i(e){if(e.success)return!0;throw l(e)}function a(...e){for(let t of e){if(typeof t==`boolean`){if(t)continue;return{success:!1,error:`Guard failed: false result`}}let e=typeof t==`object`?t:t();if(e!==void 0&&!e.success)return e}}function o(e){return typeof e!=`object`||!e?!1:!e.success}function s(e){return typeof e!=`object`||!e?!1:e.success}var c=class e extends Error{cause;constructor(e,t){super(e),this.cause=t}static fromError(t,n){let r=t.message,i=t.stack,a=t.name,o=new e(r,n);return o.stack=i,o.name=`IxfxError(${a})`,o}static fromString(t,n){let r=new e(t,n);return r.name=`IxfxError`,r}};function l(e){return typeof e.error==`string`?c.fromString(e.error,e.info):e.error instanceof Error?c.fromError(e.error,e.info):c.fromString(JSON.stringify(e.error),e.info)}function u(e){if(s(e))return e.value;throw l(e)}function d(e){return e.error instanceof Error?t(e.error):typeof e.error==`string`?e.error:JSON.stringify(e.error)}function f(e,t){return{success:!1,error:e,info:t}}function p(...e){let t;for(let n of e){if(typeof n==`boolean`){if(n)continue;return{success:!1,error:`Guard failed: false result`}}if(t=typeof n==`object`?n:n(),t!==void 0&&!t.success)return t}if(!t)throw Error(`No results`);return t}function m(e,t){o(e)&&t(e)}const h=e=>Math.log2(e)%1==0,g=(e,t)=>{if(typeof e!=`number`)throw TypeError(`v is not a number. Got: ${typeof e}`);return Number.isNaN(e)?t:e},_=(e,t=``,n=NaN)=>{if(e==null)return n;try{let r=Number.parseInt(typeof e==`number`?e.toString():e);return x(r,t,`parsed`).success?r:n}catch{return n}},v=(e,t=``,n=`?`,r)=>{if(e===null)return{success:!1,error:`Parameter '${n}' is null`,info:r};if(e===void 0)return{success:!1,error:`Parameter '${n}' is undefined`,info:r};if(Number.isNaN(e))return{success:!1,error:`Parameter '${n}' is NaN`,info:r};if(typeof e!=`number`)return{success:!1,error:`Parameter '${n}' is not a number (${JSON.stringify(e)})`,info:r};switch(t){case`finite`:if(!Number.isFinite(e))return{success:!1,error:`Parameter '${n} must be finite (Got: ${e})`,info:r};break;case`positive`:if(e<0)return{success:!1,error:`Parameter '${n}' must be at least zero (${e})`,info:r};break;case`negative`:if(e>0)return{success:!1,error:`Parameter '${n}' must be zero or lower (${e})`,info:r};break;case`aboveZero`:if(e<=0)return{success:!1,error:`Parameter '${n}' must be above zero (${e})`,info:r};break;case`belowZero`:if(e>=0)return{success:!1,error:`Parameter '${n}' must be below zero (${e})`,info:r};break;case`percentage`:if(e>1||e<0)return{success:!1,error:`Parameter '${n}' must be in percentage range (0 to 1). (${e})`,info:r};break;case`nonZero`:if(e===0)return{success:!1,error:`Parameter '${n}' must non-zero. (${e})`,info:r};break;case`bipolar`:if(e>1||e<-1)return{success:!1,error:`Parameter '${n}' must be in bipolar percentage range (-1 to 1). (${e})`,info:r};break}return{success:!0,value:e,info:r}},y=(e,t,n=3)=>{if(n===0)return e=Math.floor(e),t=Math.floor(t),e===t?{success:!0,value:e}:{success:!1,error:`A is not identical to B`};let r=10**n;return Math.floor(e*r)===Math.floor(t*r)?{success:!0,value:e}:{success:!1,error:`A is not close enough to B. A: ${e} B: ${t} Decimals: ${n}`}},b=(e,t=`?`,n)=>v(e,`percentage`,t,n),x=(e,t=``,n=`?`)=>p(v(e,t,n),()=>Number.isInteger(e)?{success:!0,value:e}:{success:!1,error:`Param '${n}' is not an integer`}),S=e=>{for(let t of e)if(Math.abs(t)%1!=0)return{success:!1,error:`Value is not an integer: ${t}`};return{success:!0,value:e}},C=e=>(typeof e==`string`&&(e=Number.parseFloat(e)),x(e).success),w=(e,t,n,r=`?`)=>typeof e==`number`?Number.isNaN(e)?{success:!1,error:`Param '${r}' is not within range ${t}-${n}. Got: NaN`}:Number.isFinite(e)?e<t?{success:!1,error:`Param '${r}' is below range ${t}-${n}. Got: ${e}`}:e>n?{success:!1,error:`Param '${r}' is above range ${t}-${n}. Got: ${e}`}:{success:!0,value:e}:{success:!1,error:`Param '${r}' is not within range ${t}-${n}. Got: infinite`}:{success:!1,error:`Param '${r}' is not a number type. Got type: '${typeof e}' value: '${JSON.stringify(e)}'`},T=(e,t,n=21,r=`?`)=>e.toPrecision(n)===t.toPrecision(n)?{success:!0,value:t}:{success:!1,error:`Param '${r}' is '${t}', expected '${e}' (using precision: ${n})`},E=(e,t=`?`)=>Array.isArray(e)?{success:!0,value:e}:{success:!1,error:`Parameter '${t}' is expected to be an array'`},D=(e,t,n=`index`)=>p(E(e),x(t,`positive`,n),w(t,0,e.length-1,n)),O=e=>Array.isArray(e)?e.some(e=>typeof e!=`string`)?{success:!1,error:`Contains something not a string`}:{success:!0,value:e}:{success:!1,error:`Value is not an array`},k=(e,t=`?`)=>e===void 0?{success:!1,error:`${t} param is undefined`}:e===null?{success:!1,error:`${t} param is null`}:{success:!0,value:e},A=e=>e!==void 0,j=e=>e instanceof Function,M=(e,t=`?`)=>e===void 0?{success:!1,error:`Param '${t}' is undefined. Expected: function.`}:e===null?{success:!1,error:`Param '${t}' is null. Expected: function.`}:typeof e==`function`?{success:!0,value:e}:{success:!1,error:`Param '${t}' is type '${typeof e}'. Expected: function`},N=e=>{if(typeof e!=`object`||!e)return{success:!1,error:`Value is null or not object type`};let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)?{success:!0,value:e}:{success:!1,error:`Fancy object`}},P=e=>{let t=typeof e;return t===`symbol`?{success:!1,error:`Symbol type`}:t===`function`?{success:!1,error:`Function type`}:t===`bigint`||t===`number`||t===`string`||t===`boolean`?{success:!0,value:e}:N(e)},F=(e,t)=>p(I(e,t),S(e)),I=(e,t)=>{for(let n of e){if(t.minExclusive!==void 0&&n<=t.minExclusive)return{success:!1,error:`Value '${n}' must be higher than minExclusive: '${t.minExclusive}'`};if(t.minInclusive!==void 0&&n<t.minInclusive)return{success:!1,error:`Value '${n}' must be equal or higher than minInclusive: '${t.minInclusive}'`};if(t.maxExclusive!==void 0&&n>=t.maxExclusive)return{success:!1,error:`Value '${n}' must be less than maxExclusive: '${t.maxExclusive}'`};if(t.maxInclusive!==void 0&&n>t.maxInclusive)return{success:!1,error:`Value '${n}' must be equal or less than maxInclusive: '${t.maxInclusive}'`}}return{success:!0,value:e}};function L(e,t=``,n=`?`){if(typeof e!=`string`)return{success:!1,error:`Param '${n} is not type string. Got: ${typeof e}`};switch(t){case`non-empty`:if(e.length===0)return{success:!1,error:`Param '${n} is empty`};break}return{success:!0,value:e}}var R=e({IxfxError:()=>c,arrayIndexTest:()=>D,arrayStringsTest:()=>O,arrayTest:()=>E,equalWithPrecisionTest:()=>T,errorResult:()=>f,functionTest:()=>M,getErrorMessage:()=>t,ifNaN:()=>g,integerArrayTest:()=>S,integerParse:()=>_,integerTest:()=>x,isDefined:()=>A,isFunction:()=>j,isInteger:()=>C,isPowerOfTwo:()=>h,nullUndefTest:()=>k,numberDecimalTest:()=>y,numberInclusiveRangeTest:()=>w,numberTest:()=>v,percentTest:()=>b,rangeIntegerTest:()=>F,rangeTest:()=>I,resultErrorToString:()=>d,resultFirstFail_:()=>a,resultIsError:()=>o,resultIsOk:()=>s,resultThrow:()=>r,resultThrowSingle:()=>i,resultToError:()=>l,resultToValue:()=>u,resultWithFail:()=>m,resultsCollate:()=>p,stringTest:()=>L,testPlainObject:()=>N,testPlainObjectOrPrimitive:()=>P,throwIfFailed:()=>n});export{o as A,v as C,t as D,f as E,u as F,m as I,p as L,r as M,i as N,d as O,l as P,n as R,w as S,c as T,_,N as a,h as b,j as c,D as d,O as f,S as g,g as h,I as i,s as j,a as k,A as l,T as m,L as n,P as o,E as p,F as r,M as s,R as t,k as u,x as v,b as w,y as x,C as y};