@piiano/forms
Version:
Piiano Forms SDK
2 lines (1 loc) • 918 B
JavaScript
const y=r=>o(n=>n===r),b=()=>o(r=>typeof r=="string"),f=()=>o(r=>typeof r=="number"),d=()=>o(r=>typeof r=="boolean"),j=()=>o(r=>!0),A=r=>o(n=>Array.isArray(n)&&n.every(t=>r.parse(t))),O=r=>o(n=>typeof n=="object"&&n!==null&&!Array.isArray(n)&&Object.entries(n).every(([t,e])=>t in r&&r[t].parse(e))&&Object.keys(r).every(t=>t in n||!(t in n)&&r[t].parse(void 0))),g=(r,n)=>o(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.entries(t).every(([e,s])=>r.parse(e)&&n.parse(s))),p=(r,n)=>o(t=>r.parse(t)||n.parse(t)),a=(r,n)=>o(t=>r.parse(t)&&n.parse(t)),l=(...r)=>o(n=>r.some(t=>t.parse(n))),i=()=>o(r=>typeof r>"u");function c(r){const n=new Set(r);return t=>n.has(t)}function o(r){return{parse:r,optional:()=>o(p(i(),o(r)).parse),enum:(...n)=>a(o(r),o(c(n)))}}export{a as and,A as array,d as boolean,y as literal,f as number,O as object,l as oneOf,i as optional,p as or,g as record,b as string,j as unknown};