LogoLogo

Schema Benchmarks

    • home
      Home

    • download_2
      Download

    • timer
      Initialization
    • check_circle
      Validation
    • output_circle
      Parsing
    • swap_horiz
      Codec
    • schema
      Standard Schema
    • format_quote
      String

    • error
      Stack

    • article
      Blog
Code styleCode style
Normal styleNormal style
System themeSystem theme
Light themeLight theme
Dark themeDark theme
Expand sidebarExpand sidebar
decoders/Compiled (minified)Compiled (minified)
Code styleCode style
Normal styleNormal style
System themeSystem theme
Light themeLight theme
Dark themeDark theme
github
GitHubGitHub
DiscordDiscord
schemas/libraries/decoders/download_compiled/minified.js
Copy to clipboardCopy to clipboard
function e(e,t){return e===1?`${e} ${t}`:`${e} ${t}s`}function t(e){return typeof e==`number`}function n(e){return typeof e==`string`}function r(e){return!!e&&Object.prototype.toString.call(e)===`[object Date]`&&!isNaN(e)}function i(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function a(e){return typeof e==`object`&&!!e&&Object.prototype.toString.call(e)===`[object Object]`}var o=Symbol.for(`decoders.kAnnotationRegistry`),s=globalThis[o]??=new WeakSet;function c(e){return s.add(e),e}function l(e,t){return c({type:`object`,fields:e,text:t})}function u(e,t){return c({type:`array`,items:e,text:t})}function d(e,t){return c({type:`opaque`,value:e,text:t})}function ee(e,t){return c({type:`scalar`,value:e,text:t})}function f(e,t){return t===void 0?e:c({...e,text:t})}function p(e,t){return l(new Map([...e.fields,...t]),e.text)}function m(e){return s.has(e)}function h(e,t,n){n.add(e);let r=[];for(let t of e)r.push(_(t,void 0,n));return u(r,t)}function g(e,t,n){n.add(e);let r=new Map;for(let t of Object.keys(e)){let i=e[t];r.set(t,_(i,void 0,n))}return l(r,t)}function _(e,t,n){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`||typeof e.getMonth==`function`?ee(e,t):m(e)?f(e,t):Array.isArray(e)?n.has(e)?d(`<circular ref>`,t):h(e,t,n):a(e)?n.has(e)?d(`<circular ref>`,t):g(e,t,n):typeof e==`function`?d(`<function>`,t):i(e)?d(`<Promise>`,t):e?.constructor?.name?d(`<${e.constructor.name}>`,t):d(`???`,t)}function v(e,t){return _(e,t,new WeakSet)}function y(e,t){return g(e,t,new WeakSet)}var b=` `;function x(e){return e.includes(` `)}function S(e,t=b){return x(e)?e.split(` `).map(e=>`${t}${e}`).join(` `):`${t}${e}`}var C=/'/g;function w(e){return typeof e==`string`?`'`+e.replace(C,`\\'`)+`'`:e===void 0?`undefined`:JSON.stringify(e)}function T(e,t=[]){let n=[];if(e.type===`array`){let r=e.items,i=0;for(let e of r)for(let r of T(e,[...t,i++]))n.push(r)}else if(e.type===`object`){let r=e.fields;for(let[e,i]of r)for(let r of T(i,[...t,e]))n.push(r)}let r=e.text;if(!r)return n;let i;return i=t.length===0?``:t.length===1?typeof t[0]==`number`?`Value at index ${t[0]}: `:`Value at key ${w(t[0])}: `:`Value at keypath ${w(t.map(String).join(`.`))}: `,[...n,`${i}${r}`]}function te(e,t=80){let n=JSON.stringify(e);if(n.length<=t)return n;let r=`${e.substring(0,t-15)}...`;return n=`${JSON.stringify(r)} [truncated]`,n}function ne(e,t){let{items:n}=e;if(n.length===0)return`[]`;let r=[];for(let e of n){let[n,i]=O(e,`${t}${b}`);r.push(`${t}${b}${n},`),i!==void 0&&r.push(S(i,`${t}${b}`))}return[`[`,...r,`${t}]`].join(` `)}function E(e,t){let{fields:n}=e;if(n.size===0)return`{}`;let r=[];for(let[e,i]of n){let n=D(e),a=`${t}${b}${` `.repeat(n.length+2)}`,[o,s]=O(i,`${t}${b}`);r.push(`${t}${b}${n}: ${o},`),s!==void 0&&r.push(S(s,a))}return[`{`,...r,`${t}}`].join(` `)}function D(e){return typeof e==`string`?te(e):typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`?e.toString():e===null?`null`:e===void 0?`undefined`:typeof e==`bigint`?`${e.toString()}n`:r(e)?`new Date(${w(e.toISOString())})`:e instanceof Date?`(Invalid Date)`:`(unserializable)`}function O(e,t=``){let n;n=e.type===`array`?ne(e,t):e.type===`object`?E(e,t):e.type===`scalar`?D(e.value):e.value;let r=e.text;if(r!==void 0){let e=`^`.repeat(x(n)?1:n.length);return[n,[e,r].join(x(r)?` `:` `)]}else return[n,void 0]}function k(e){let[t,n]=O(e);return n===void 0?t:`${t} ${n}`}function*A(e,t){switch(e.text&&(t.length>0?yield{message:e.text,path:[...t]}:yield{message:e.text}),e.type){case`array`:{let n=0;for(let r of e.items)t.push(n++),yield*A(r,t),t.pop();break}case`object`:for(let[n,r]of e.fields)t.push(n),yield*A(r,t),t.pop();break;case`scalar`:case`opaque`:break}}function j(e){return Array.from(A(e,[]))}function M(e){return{ok:!0,value:e,error:void 0}}function N(e){return{ok:!1,value:void 0,error:e}}function re(e){return t=>{try{return M(e(t))}catch(e){return N(v(t,e instanceof Error?e.message:String(e)))}}}function ie(e,t){let n=t(e);if(typeof n==`string`){let e=Error(` ${n}`);return e.name=`Decoding error`,e}else return n}function P(e){function t(t){return e(t,M,e=>N(m(e)?e:v(t,e)))}function n(e,n=k){let r=t(e);if(r.ok)return r.value;throw ie(r.error,n)}function r(e){return t(e).value}function i(e){return s(re(e))}function a(e,t){return l(n=>e(n)?null:t)}function o(){return d}function s(e){return P((n,r,i)=>{let a=t(n);if(!a.ok)return a;let o=R(e)?e:e(a.value,r,i);return R(o)?o.decode(a.value):o})}function c(e){return s(e)}function l(e){return s((t,n,r)=>{let i=e(t);return i===null?n(t):r(typeof i==`string`?v(t,i):i)})}function u(e){return P((n,r,i)=>{let a=t(n);return a.ok?a:i(v(a.error,e))})}let d=L({verify:n,value:r,decode:t,transform:i,refine:a,refineType:o,reject:l,describe:u,chain:s,pipe:c,"~standard":{version:1,vendor:`decoders`,validate:e=>{let n=t(e);return n.ok?{value:n.value}:{issues:j(n.error)}}}});return d}var F=Symbol.for(`decoders.kDecoderRegistry`),I=globalThis[F]??=new WeakSet;function L(e){return I.add(e),e}function R(e){return I.has(e)}var z=P((e,t,n)=>Array.isArray(e)?t(e):n(`Must be an array`));function B(e){let t=e.decode;return z.chain((e,n,r)=>{let i=[];for(let n=0;n<e.length;++n){let a=e[n],o=t(a);if(o.ok)i.push(o.value);else{i.length=0;let t=o.error,a=e.slice();return a.splice(n,1,v(t,t.text?`${t.text} (at index ${n})`:`index ${n}`)),r(v(a))}}return n(i)})}function V(t){let n=t.size,r=n??t.min,i=n??t.max,a=r===i?``:`at least `,o=r===i?``:`at most `;return t=>{let n=t.length??t.size;if(typeof t==`string`){if(r!==void 0&&n<r)return`Too short, must be ${a}${e(r,`char`)}`;if(i!==void 0&&n>i)return`Too long, must be ${o}${e(i,`char`)}`}else{if(r!==void 0&&n<r)return`Must have ${a}${e(r,`item`)}`;if(i!==void 0&&n>i)return`Must have ${o}${e(i,`item`)}`}return null}}function H(e,t){return e.reject(V(t))}function U(e,t){let n=new Set;for(let r of e)t.has(r)||n.add(r);return n}var W=P((e,t,n)=>a(e)?t(e):n(`Must be an object`));function G(e){let t=new Set(Object.keys(e));return W.chain((n,r,i)=>{let a=U(t,new Set(Object.keys(n))),o={},s=null;for(let t of Object.keys(e)){let r=e[t],i=n[t],c=r.decode(i);if(c.ok){let e=c.value;e!==void 0&&(o[t]=e),a.delete(t)}else{let e=c.error;i===void 0?a.add(t):(s??=new Map,s.set(t,e))}}if(s||a.size>0){let e=y(n);if(s&&(e=p(e,s)),a.size>0){let t=Array.from(a).map(w).join(`, `),n=a.size>1?`keys`:`key`;e=f(e,`Missing ${n}: ${t}`)}return i(e)}return r(o)})}var K=`Either: `;function q(e){return`-${S(e).substring(1)}`}function J(e){return e.startsWith(K)?e.substring(K.length):q(e)}function ae(...e){if(e.length===0)throw Error(`Pass at least one decoder to either()`);return P((t,n,r)=>{let i=[];for(let n of e){let e=n.decode(t);if(e.ok)return e;i.push(e.error)}return r(K+i.map(e=>J(T(e).join(` `))).join(` `))})}function oe(e){return P((t,n,r)=>{let i=e.indexOf(t);return i===-1?r(`Must be one of ${e.map(e=>w(e)).join(`, `)}`):n(e[i])})}function se(e){return typeof e==`function`?e():e}var ce=ue(null);function le(e,t){let n=ae(ce,e);return arguments.length>=2?n.transform(e=>e??se(t)):n}function ue(e){return P((t,n,r)=>t===e?n(e):r(`Must be ${typeof e==`symbol`?String(e):w(e)}`))}var de=/^([A-Za-z]{2,12}(?:[+][A-Za-z]{2,12})?):\/\/(?:([^@:]*:?(?:[^@]+)?)@)?(?:([A-Za-z0-9.-]+)(?::([0-9]{2,5}))?)(\/(?:[-+~%/.,\w]*)?(?:\?[-+=&;%@.,/\w]*)?(?:#[.,!/\w]*)?)?$/,Y=P((e,t,r)=>n(e)?t(e):r(`Must be string`));function fe(e,t){return Y.refine(t=>e.test(t),t)}var pe=fe(de,`Must be URL`),X=P((e,t,n)=>r(e)?t(e):n(`Must be a Date`)),Z=P((e,n,r)=>t(e)?n(e):r(`Must be number`)).refine(e=>Number.isFinite(e),`Number must be finite`);function Q(e,t,n=Z){return n.reject(n=>n<e?`Too low, must be between ${e} and ${t}`:n>t?`Too high, must be between ${e} and ${t}`:null)}const $=G({id:Z,created:X,title:H(Y,{min:1,max:100}),type:oe([`jpg`,`png`]),size:Z,url:pe});G({id:Z,created:X,title:H(Y,{min:1,max:100}),brand:H(Y,{min:1,max:30}),description:H(Y,{min:1,max:500}),price:Q(1,1e4),discount:le(Q(1,100)),quantity:Q(1,10),tags:B(H(Y,{min:1,max:30})),images:B($),ratings:B(G({id:Z,stars:Q(1,5),title:H(Y,{min:1,max:100}),text:H(Y,{min:1,max:1e3}),images:B($)}))}).verify({});
Created by eskimojo for Open Circle