@qundus/qform
Version:
The only form library you'll ever need :)
1 lines • 5.8 kB
JavaScript
;var e=Object.defineProperty,n=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,r=(n,t,l)=>t in n?e(n,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):n[t]=l,o=(e,o)=>{for(var u in o||(o={}))t.call(o,u)&&r(e,u,o[u]);if(n)for(var u of n(o))l.call(o,u)&&r(e,u,o[u]);return e},u=(n,t)=>{for(var l in t)e(n,l,{get:t[l],enumerable:!0})},s={};u(s,{schemaToFields:()=>p});var a=["undefined","null","void","any","unknown","never","nan"],i={isZodType(e){var n;return"undefined"!=typeof File&&e instanceof File||"object"==typeof e&&null!==e&&"_def"in e&&"string"==typeof(null==(n=e._def)?void 0:n.typeName)},isZodTypeNameNull(e){const n=e.endsWith("?")?e.slice(0,e.length-1):e;return a.includes(n)}};var c={processOptions(e){var n,t;const l=o({},e);return l.verbose=null!=(n=l.verbose)&&n,l.unknownsAsText=null!=(t=l.unknownsAsText)&&t,l},getZodTypeName:function e(n,t){var l,r,o;if("object"!=typeof n||null===n)return"unknown";const u=n._def;if(!u||"string"!=typeof u.typeName)return"undefined"!=typeof File&&n instanceof File?"file":"unknown";if("ZodNullable"===u.typeName||"ZodOptional"===u.typeName)return e(u.innerType)+("ZodNullable"===u.typeName?"?":"");if("ZodEffects"===u.typeName){const e=null==(l=null==n?void 0:n.safeParse)?void 0:l.call(n,null);if(e.success)return"null";const t=null==(r=e.error)?void 0:r.message.toLowerCase();return t.includes("file")?"file":t.includes("string")?"string":t.includes("boolean")?"boolean":t.includes("date")?"date":"effect"}switch(u.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(u.value)}`;case"ZodEnum":return"enum";case"ZodNativeEnum":return"nativeEnum"}return"ZodArray"===u.typeName?`array<${e(u.type)}>`:"ZodObject"===u.typeName?"object":"ZodRecord"===u.typeName?`record<${e(u.valueType)}>`:"ZodUnion"===u.typeName?u.options.map(e).join(" | "):"ZodIntersection"===u.typeName?`${e(u.left)} & ${e(u.right)}`:"ZodTuple"===u.typeName?`[${u.items.map(n=>e(n)).join(", ")}]`:(null==(o=u.typeName)?void 0:o.replace(/^Zod/,"").toLowerCase())||"unknown"},getEnumValues:function e(n){var t;if(null==n)return null;const l=n._def,r=l.typeName;if("ZodNullable"===r||"ZodOptional"===r)return e(null!=(t=l.type)?t:l.innerType);if("ZodArray"===r)return e(n._def.type);if(null!=l.left){const n=e(l.left),t=e(l.right);return o(o({},n),t)}if(null!=l.options){let e={};for(const n of l.options){const t=n.Values;e=o(o({},e),t)}return e}return null!=l.values?Array.isArray(l.values)?Object.values(l.values).reduce((e,n)=>("string"==typeof n&&(e[n]=n),e),{}):l.values:{}}};function p(e,n){const t=c.getZodTypeName(e,"MAIN");if(!t.startsWith("object"))throw new Error("qForm: please use a valid zod object not a "+t);return d(e,c.processOptions(n))}function d(e,n,t=""){var l,r,u,s,a,p,y,f,m,b,v,Z,N,g,h;let j={};for(const[O,w]of Object.entries(e.shape)){const e=(t.length>0?`${t}.`:"")+O,A=w,T=c.getZodTypeName(A,e);if(T.startsWith("object")){const t=d(A,n,e);j=o(o({},j),t);continue}const k=null!=(r=null==(l=n.override)?void 0:l[e])?r:{},E={type:"string",isArray:T.startsWith("array")};switch(T.includes("string")?(k.type=null!=(u=k.type)?u:"text",E.type="string"):T.includes("number")?(k.type=null!=(s=k.type)?s:"number",E.type="number"):T.includes("boolean")?(k.type=null!=(a=k.type)?a:"checkbox",E.type="boolean"):T.includes("enum")?(k.type=null!=(p=k.type)?p:"select",E.type="enum"):T.includes("nativeEnum")?(k.type=null!=(y=k.type)?y:"select",E.type="nativeEnum"):T.includes("file")?(k.type=null!=(f=k.type)?f:"file",E.type="file"):T.includes("date")&&(k.type=null!=(m=k.type)?m:"date",E.type="date"),E.type){case"nativeEnum":case"enum":{k.multiple=null!=(v=null!=(b=k.multiple)?b:E.isArray)&&v;const e=c.getEnumValues(A),n=[];for(const t in e){const l=e[t];n.push({label:t,value:l})}k.options=()=>n}break;case"file":{k.multiple=null!=(N=null!=(Z=k.multiple)?Z:E.isArray)&&N;const e=({value:e,field:n})=>null==e?null:e instanceof FileList?n.multiple?Array.from(e):e[0]:e;null==k.processValue?k.processValue=e:"function"==typeof k.processValue?k.processValue=[e,k.processValue]:k.processValue=[e,...k.processValue]}break;default:{let t=!1;if(null==k.type&&(null==n?void 0:n.unknownsAsText)&&(i.isZodTypeNameNull(T)?k.type="text":t=!0),E.isArray&&((null==n?void 0:n.verbose)&&console.error("qForm: removed ",e," with type ",T,", because requires explicit intervention!"),t=!0),t)continue}}k.required=null!=(g=k.required)?g:!A.isOptional(),k.valueNullable=null!=(h=k.valueNullable)?h:A.isNullable();const V=e=>{const n=A.safeParse(e);if(n.success)return null;const t=[];for(const e of n.error.errors)t.push(e.message);return t.length<=0?null:t};null==k.validate?k.validate=V:"function"==typeof k.validate?k.validate=[k.validate,V]:k.validate.push(V),j[e]=k}return j}var y={};function f(e){const n={},t=(e,l=[])=>{if(function(e){return!("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e)||e instanceof Date||Array.isArray(e))}(e))for(const n in e)Object.hasOwn(e,n)&&t(e[n],[...l,n]);else l.length>0&&(n[l.join(".")]=e)};return t(e),n}function m(e){const n={};for(const[t,l]of Object.entries(e)){const e=t.split(".");let r=n;for(let n=0;n<e.length;n++){const t=e[n];n===e.length-1?r[t]=l:(r[t]=r[t]||{},r=r[t])}}return n}u(y,{flatten:()=>f,unflatten:()=>m}),exports.cObj=y,exports.cZod=s;//# sourceMappingURL=index.cjs.map