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

    • deployed_code
      Libraries

    • article
      Blog
Expand sidebarExpand sidebar
decoders/Compiled (minified)Compiled (minified)
github
GitHubGitHub
DiscordDiscord
PreferencesPreferences
schemas/libraries/decoders/download_compiled/minified.js
code_off
View RawView Raw
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 = new Set(Object.keys(n)), o = U(t, a), s = {}, c = null; for (let t of Object.keys(e)) { let r = e[t], i = n[t], a = r.decode(i); if (a.ok) { let e = a.value; (e !== void 0 && (s[t] = e), o.delete(t)); } else { let e = a.error; i === void 0 ? o.add(t) : ((c ??= new Map()), c.set(t, e)); } } if (c || o.size > 0) { let e = y(n); if ((c && (e = p(e, c)), o.size > 0)) { let t = Array.from(o).map(w).join(`, `), n = o.size > 1 ? `keys` : `key`; e = f(e, `Missing ${n}: ${t}`); } return i(e); } return r(s); }); } 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]*)?)?(?:#[^\s#]*)?$/, 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

Preferences

Style
Theme
NPM browser
Code ligatures