UNPKG

@qundus/qform

Version:

The only form library you'll ever need :)

1 lines 5.22 kB
import {c,a}from'../chunk-PDQE6MDW.mjs';var k={};c(k,{schemaToSetups:()=>x});var D=["undefined","null","void","any","unknown","never","nan"],W={isZodType(t){var e;return typeof File!="undefined"&&t instanceof File?true:typeof t=="object"&&t!==null&&"_def"in t&&typeof((e=t._def)==null?void 0:e.typeName)=="string"},isZodTypeNameNull(t){let e=t.endsWith("?")?t.slice(0,t.length-1):t;return D.includes(e)}};function p(t,e){var o,s,i;if(typeof t!="object"||t===null)return "unknown";let n=t._def;if(!n||typeof n.typeName!="string")return typeof File!="undefined"&&t instanceof File?"file":"unknown";if(n.typeName==="ZodNullable"||n.typeName==="ZodOptional")return p(n.innerType)+(n.typeName==="ZodNullable"?"?":"");if(n.typeName==="ZodEffects"){let a=(o=t==null?void 0:t.safeParse)==null?void 0:o.call(t,null);if(a.success)return "null";let y=(s=a.error)==null?void 0:s.message.toLowerCase();return y.includes("file")?"file":y.includes("string")?"string":y.includes("boolean")?"boolean":y.includes("date")?"date":"effect"}switch(n.typeName){case "ZodString":return "string";case "ZodNumber":return "number";case "ZodBoolean":return "boolean";case "ZodBigInt":return "bigint";case "ZodDate":return "date";case "ZodSymbol":return "symbol";case "ZodFile":return "file";case "ZodBlob":return "blob";case "ZodUndefined":return "undefined";case "ZodNull":return "null";case "ZodVoid":return "void";case "ZodAny":return "any";case "ZodUnknown":return "unknown";case "ZodNever":return "never";case "ZodNaN":return "nan";case "ZodLiteral":return `literal:${JSON.stringify(n.value)}`;case "ZodEnum":return "enum";case "ZodNativeEnum":return "nativeEnum"}return n.typeName==="ZodArray"?`array<${p(n.type)}>`:n.typeName==="ZodObject"?"object":n.typeName==="ZodRecord"?`record<${p(n.valueType)}>`:n.typeName==="ZodUnion"?n.options.map(p).join(" | "):n.typeName==="ZodIntersection"?`${p(n.left)} & ${p(n.right)}`:n.typeName==="ZodTuple"?`[${n.items.map(a=>p(a)).join(", ")}]`:((i=n.typeName)==null?void 0:i.replace(/^Zod/,"").toLowerCase())||"unknown"}function N(t){var l;if(t==null)return null;let e=t._def,n=e.typeName;if(n==="ZodNullable"||n==="ZodOptional")return N((l=e.type)!=null?l:e.innerType);if(n==="ZodArray")return N(t._def.type);if(e.left!=null){let o=N(e.left),s=N(e.right);return a(a({},o),s)}if(e.options!=null){let o={};for(let s of e.options){let i=s.Values;o=a(a({},o),i);}return o}return e.values!=null?Array.isArray(e.values)?Object.values(e.values).reduce((o,s)=>(typeof s=="string"&&(o[s]=s),o),{}):e.values:{}}var v={processOptions(t){var n,l;let e=a({},t);return e.verbose=(n=e.verbose)!=null?n:false,e.unknownsAsText=(l=e.unknownsAsText)!=null?l:false,e},getZodTypeName:p,getEnumValues:N};function x(t,e){let n=v.getZodTypeName(t,"MAIN");if(!n.startsWith("object"))throw new Error("qForm: please use a valid zod object not a "+n);let l=v.processOptions(e);return B(t,l)}function B(t,e,n=""){var o,s,i,a$1,y,F,h,S,_,A,$,q,U,V,P;let l={};for(let[L,C]of Object.entries(t.shape)){let Z=(n.length>0?`${n}.`:"")+L,m=C,u=v.getZodTypeName(m,Z);if(u.startsWith("object")){let c=B(m,e,Z);l=a(a({},l),c);continue}let r=(s=(o=e.override)==null?void 0:o[Z])!=null?s:{},f={type:"string",isArray:u.startsWith("array")};switch(u.includes("string")?(r.type=(i=r.type)!=null?i:"text",f.type="string"):u.includes("number")?(r.type=(a$1=r.type)!=null?a$1:"number",f.type="number"):u.includes("boolean")?(r.type=(y=r.type)!=null?y:"checkbox",f.type="boolean"):u.includes("enum")?(r.type=(F=r.type)!=null?F:"select",f.type="enum"):u.includes("nativeEnum")?(r.type=(h=r.type)!=null?h:"select",f.type="nativeEnum"):u.includes("file")?(r.type=(S=r.type)!=null?S:"file",f.type="file"):u.includes("date")&&(r.type=(_=r.type)!=null?_:"date",f.type="date"),f.type){case "nativeEnum":case "enum":{r.multiple=($=(A=r.multiple)!=null?A:f.isArray)!=null?$:false;let c=v.getEnumValues(m),g=[];for(let b in c){let T=c[b];g.push({label:b,value:T});}r.select={options:g};}break;case "file":r.multiple=(U=(q=r.multiple)!=null?q:f.isArray)!=null?U:false;break;default:{let c=false;if(r.type==null&&(e!=null&&e.unknownsAsText)&&(W.isZodTypeNameNull(u)?r.type="text":c=true),f.isArray&&(e!=null&&e.verbose&&console.error("qForm: removed ",Z," with type ",u,", because requires explicit intervention!"),c=true),c)continue}break}r.required=(V=r.required)!=null?V:!m.isOptional(),r.valueNullable=(P=r.valueNullable)!=null?P:m.isNullable();let O=({value:c})=>{let g=m.safeParse(c);if(g.success)return null;let b=[];for(let T of g.error.errors)b.push(T.message);return b.length<=0?null:b};r.validate==null?r.validate=O:typeof r.validate=="function"?r.validate=[r.validate,O]:r.validate.push(O),l[Z]=r;}return l}var w={};c(w,{flatten:()=>j,unflatten:()=>E});function I(t){return typeof t=="object"&&t!==null&&Object.prototype.toString.call(t)==="[object Object]"&&!(t instanceof Date)&&!Array.isArray(t)}function j(t){let e={},n=(l,o=[])=>{if(I(l))for(let s in l)Object.hasOwn(l,s)&&n(l[s],[...o,s]);else o.length>0&&(e[o.join(".")]=l);};return n(t),e}function E(t){let e={};for(let[n,l]of Object.entries(t)){let o=n.split("."),s=e;for(let i=0;i<o.length;i++){let a=o[i];i===o.length-1?s[a]=l:(s[a]=s[a]||{},s=s[a]);}}return e}export{w as cObj,k as cZod};