@form-instant/react-resolver-zod 1.5.1 → 1.5.2-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/context.d.ts +2 -1
- package/dist/funcs/field-config.d.ts +5 -5
- package/dist/funcs/field-type-inference.d.ts +1 -1
- package/dist/funcs/index.d.ts +5 -0
- package/dist/funcs/types.d.ts +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/react-resolver-zod.cjs.development.js +256 -54
- package/dist/react-resolver-zod.cjs.development.js.map +1 -1
- package/dist/react-resolver-zod.cjs.production.min.js +1 -1
- package/dist/react-resolver-zod.cjs.production.min.js.map +1 -1
- package/dist/react-resolver-zod.esm.js +246 -53
- package/dist/react-resolver-zod.esm.js.map +1 -1
- package/dist/useSchema.d.ts +6 -8
- package/package.json +51 -51
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var e=require("
|
1
|
+
"use strict";var e=require("react"),n=require("react/jsx-runtime"),r=require("@form-instant/react-input-mapping"),t=require("zod"),i=e.createContext({});function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},o.apply(null,arguments)}function a(e,n){if(null==e)return{};var r={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(-1!==n.indexOf(t))continue;r[t]=e[t]}return r}function f(e){return"ZodDefault"===e._def.typeName?e._def.defaultValue():"ZodEffects"===e._def.typeName?f(e.innerType()):void 0}var s=["object","array"],u=Symbol("GetFieldConfig");function d(e){return e._def.fieldConfig?e._def.fieldConfig:"innerType"in e._def?d(e._def.innerType):"schema"in e._def?d(e._def.schema):{}}function c(e,n){if(n)return n;var r=e._def.typeName;return new Map([["ZodObject","object"],["ZodString","string"],["ZodNumber","number"],["ZodBoolean","boolean"],["ZodDate","date"],["ZodEnum","select"],["ZodNativeEnum","select"],["ZodArray","array"]]).get(r)||"string"}var l=["fieldType"],p={ZodDiscriminatedUnion:function(e){var n=e.name,r=e.history,t=e.dependecys,i=e.schema._def,o=i.optionsMap,a=i.discriminator,f=i.fieldConfig;if(!Object.keys(t).length)return[{}];var s=t[a],u=o.get(s);if(!u)return[{}];var d=Object.entries(u.shape).filter(function(e){return e[0]!==a}).map(function(e){var i=e[0],o=e[1],a=(r?[r,n]:[n]).join(".");return"."===a.charAt(0)&&(a=a.substring(1)),m({name:i,schema:o,history:a,dependecys:t})}),c=(r?[r,n,a]:[n,a]).join(".");return"."===c.charAt(0)&&(c=c.substring(1)),d.unshift({name:{current:a,history:c},type:"discriminator",required:!0,default:s,fieldConfig:f,options:Array.from(o.keys()).map(function(e){return[String(e),String(e)]})}),d},ZodObject:function(e){var n=e.schema,r=e.name,t=e.history,i=e.dependecys,o=(t?[t,r]:[r]).join(".");return"."===o.charAt(0)&&(o=o.substring(1)),Object.entries(n.shape).map(function(e){return m({name:e[0],schema:e[1],history:o,dependecys:i})})},ZodArray:function(e){var n=e.schema,r=e.name,t=e.history,i=e.dependecys,o=(t?[t,r]:[r]).join(".");return"."===o.charAt(0)&&(o=o.substring(1)),[m({name:"0",schema:n._def.type,history:o,dependecys:i})]}};function m(e){var n,r,t=e.name,i=e.schema,s=e.history,u=e.dependecys,m=void 0===u?{}:u,h=y(i),v=d(i),g=v.fieldType,_=a(v,l),b=c(h,g),j=f(i),Z=_,x=h._def.values,O=[];x&&(O=Array.isArray(x)?x.map(function(e){return[e,e]}):Object.entries(x));var C=h._def.typeName,N=p[C],E=null==N?void 0:N({name:t,schema:h,history:s,dependecys:m});if("ZodDiscriminatedUnion"===C){var S=h._def,F=m[S.discriminator];if(F){var T=S.optionsMap.get(F);T._def.fieldConfig&&(Z=o({},_,T._def.fieldConfig))}}"array"===b&&(Z=o({min:(null==(n=h._def.minLength)?void 0:n.value)||1,max:null==(r=h._def.maxLength)?void 0:r.value},Z));var A=(s?[s,t]:[t]).join(".");return"."===A.charAt(0)&&(A=A.substring(1)),{name:{current:t,history:A},type:b,required:!i.isOptional(),default:j,fieldConfig:Z,options:O,schema:E,description:h.description}}function y(e){return"innerType"in e._def?y(e._def.innerType):"schema"in e._def?y(e._def.schema):e}var h=function(e){var n,r=e instanceof t.z.ZodEffects?e.innerType():e,i=(null==(n=r._def.fieldConfig)?void 0:n.dp)||{};return{fields:Object.fromEntries(Object.entries(r.shape).map(function(e){var n=e[0];return[n,m({name:n,schema:e[1],dependecys:i})]}))}},v=function(n){var r=e.useContext(i);return h(r).fields[n]},g=function(e,n){try{for(var r=function(){if("ZodEffects"===e._def.typeName)return e.innerType().shape;if("ZodObject"===e._def.typeName)return e.shape;var r=e._def.optionsMap.get(n[e._def.discriminator]);if(!r)throw new Error("No option found");return r.shape}(),t={},i=function(){var e=a[o],i=r[e],f=i.safeParse(void 0);if(f.success)return t[e]=f.data,0;if(Object.keys(n).includes(e))return t[e]=n[e],0;var s={ZodString:function(){t[e]=""},ZodNumber:function(){t[e]=0},ZodBoolean:function(){t[e]=!1},ZodDate:function(){t[e]=null},ZodArray:function(){t[e]=[]},ZodObject:function(){t[e]=g(i,n)},ZodDiscriminatedUnion:function(){var r=i._def.optionsMap.get(n[i._def.discriminator]);t[e]=r?g(r,n):null}}[i._def.typeName];if(s)return s(),0;t[e]=null},o=0,a=Object.keys(r);o<a.length;o++)i();return t}catch(e){return console.log("🔴 initialValues error",e),e instanceof Error&&(console.log(e.cause),console.log(e.message)),{}}};exports.FIELD_CONFIG_SYMBOL=u,exports.FormInstantElement=function(t){var i,o=v(t.name),a=e.useId();return null!=(i=o.fieldConfig)&&i.type||!["object","transform"].includes(o.type)?n.jsx(r.ElementMapping,{formProps:o}):n.jsx(n.Fragment,{children:Object.values(o.schema||{}).map(function(t){var i;return n.jsx(e.Fragment,{children:n.jsx(r.ElementMapping,{formProps:t})},a+"-"+((null==(i=t.name)?void 0:i.history)||""))})})},exports.FormInstantProvider=function(e){return n.jsx(i.Provider,{value:e.schema,children:e.children})},exports.ZodResolverContext=i,exports.createZodSchemaFieldConfig=function(){return function(e){var n=function(){};return n[u]=e,n}},exports.extendZodWithFieldConfig=function(e){e.ZodType.prototype.fieldConfig=function(e){return this._def.fieldConfig=e,this};var n=e.object,r=e.array;e=o({object:function(){var e=n.apply(void 0,arguments);return e._def.default=function(){return{}},e},array:function(){var e=r.apply(void 0,arguments);return e._def.default=function(){return[]},e}},a(e,s))},exports.generateInitialValues=g,exports.getDefaultValueInZodStack=f,exports.getDefaultValues=function(e){for(var n=e instanceof t.z.ZodEffects?e.innerType():e,r={},i=0,o=Object.entries(n.shape);i<o.length;i++){var a=o[i],s=a[0],u=f(a[1]);void 0!==u&&(r[s]=u)}return r},exports.getFieldConfigInZodStack=d,exports.inferFieldType=c,exports.parseSchema=h,exports.useFields=v,exports.useSchema=function(n,r){var t=e.useMemo(function(){return n(r).fieldConfig(o({dp:r},n(r).fieldConfig))},[n,JSON.stringify(r)]),i=e.useMemo(function(){return g(t,r)},[t,JSON.stringify(r)]);return{schema:t,initialValues:i}};
|
2
2
|
//# sourceMappingURL=react-resolver-zod.cjs.production.min.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"react-resolver-zod.cjs.production.min.js","sources":["../src/context.tsx","../src/funcs/default-values.ts","../src/funcs/field-config.ts","../src/funcs/schema-parser.ts","../src/funcs/field-type-inference.ts","../src/useSchema.tsx","../src/provider.tsx","../src/element.tsx"],"sourcesContent":["import { createContext } from 'use-context-selector';\nimport { zodResolverProps } from './type';\n\nexport const ZodResolverContext = createContext<zodResolverProps>({} as zodResolverProps);\n","import { z } from 'zod';\nimport { ZodObjectOrWrapped } from './types';\n\nexport function getDefaultValueInZodStack(schema: z.ZodTypeAny): any {\n if (schema instanceof z.ZodDefault) {\n return schema._def.defaultValue();\n }\n\n if (schema instanceof z.ZodEffects) {\n return getDefaultValueInZodStack(schema.innerType());\n }\n\n return undefined;\n}\n\nexport function getDefaultValues(schema: ZodObjectOrWrapped): Record<string, any> {\n const objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;\n const shape = objectSchema.shape;\n\n const defaultValues: Record<string, any> = {};\n\n for (const [key, field] of Object.entries(shape)) {\n const defaultValue = getDefaultValueInZodStack(field as z.ZodTypeAny);\n if (defaultValue !== undefined) {\n defaultValues[key] = defaultValue;\n }\n }\n\n return defaultValues;\n}\n","import { z } from 'zod';\nimport { FieldConfig, SuperRefineFunction } from './types';\nexport const FIELD_CONFIG_SYMBOL = Symbol('GetFieldConfig');\n\ndeclare module 'zod' {\n interface ZodType {\n fieldConfig<AdditionalRenderable = null, FieldTypes = string>(\n config: FieldConfig<AdditionalRenderable, FieldTypes>,\n ): this;\n }\n}\n\nexport const extendZodWithFieldConfig = <AdditionalRenderable = null, FieldTypes = string>(\n zod: typeof z,\n) => {\n (zod.ZodType.prototype as any).fieldConfig = function (\n config: FieldConfig<AdditionalRenderable, FieldTypes>,\n ) {\n this._def.fieldConfig = config;\n return this;\n };\n};\n\nexport const createZodSchemaFieldConfig =\n <AdditionalRenderable = null, FieldTypes = string>() =>\n (config: FieldConfig<AdditionalRenderable, FieldTypes>): SuperRefineFunction => {\n const refinementFunction: SuperRefineFunction = () => {\n // Do nothing.\n };\n\n // @ts-expect-error This is a symbol and not a real value.\n refinementFunction[FIELD_CONFIG_SYMBOL] = config;\n\n return refinementFunction;\n };\n\nexport function getFieldConfigInZodStack(schema: z.ZodTypeAny): FieldConfig {\n // Verifica si el esquema tiene fieldConfig directamente\n if (schema._def.fieldConfig) {\n return schema._def.fieldConfig as FieldConfig;\n }\n\n // Si el esquema es un ZodEffects, busca en el innerType\n if ('innerType' in schema._def) {\n return getFieldConfigInZodStack(schema._def.innerType as z.ZodAny);\n }\n\n // Si el esquema es un ZodEffects con un schema interno, busca en el schema\n if ('schema' in schema._def) {\n return getFieldConfigInZodStack(schema._def.schema as z.ZodAny);\n }\n\n // Si no se encuentra fieldConfig, retorna un objeto vacío\n return {} as FieldConfig;\n}\n","import { ParsedField } from '@form-instant/react-input-mapping';\nimport { z } from 'zod';\nimport { getDefaultValueInZodStack } from './default-values';\nimport { getFieldConfigInZodStack } from './field-config';\nimport { inferFieldType } from './field-type-inference';\nimport { ParsedSchema, ZodObjectOrWrapped } from './types';\n\nconst typeMapping = {\n ZodDiscriminatedUnion(\n baseSchema: z.ZodTypeAny,\n name: string,\n history: string,\n dependecys: Record<string, any>,\n ) {\n const { optionsMap, discriminator, fieldConfig } = baseSchema._def;\n\n if (!Object.keys(dependecys).length) return [{}] as ParsedField<any, string>[];\n\n const optionKey = dependecys[discriminator];\n const option = optionsMap.get(optionKey);\n\n if (!option) return [{}] as ParsedField<any, string>[];\n\n const entries = Object.entries(option.shape);\n\n const fields = entries\n .filter(([key]) => key !== discriminator)\n .map(([key, field]) => {\n return parseField(\n key,\n field as z.ZodTypeAny,\n [history, name].join('.'),\n dependecys,\n );\n });\n\n fields.unshift({\n name: {\n current: discriminator,\n history: [history, name, discriminator].join('.'),\n },\n type: 'discriminator',\n required: true,\n default: optionKey,\n fieldConfig,\n options: Array.from(optionsMap.keys()).map((key) => [String(key), String(key)]),\n });\n\n return fields;\n },\n\n ZodObject(\n baseSchema: z.ZodTypeAny,\n name: string,\n history: string,\n dependecys: Record<string, any>,\n ) {\n return Object.entries((baseSchema as any).shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny, [history, name].join('.'), dependecys),\n );\n },\n\n ZodArray(\n baseSchema: z.ZodTypeAny,\n name: string,\n history: string,\n dependecys: Record<string, any>,\n ) {\n return [parseField('0', baseSchema._def.type, [history, name].join('.'), dependecys)];\n },\n};\n\nfunction parseField(\n name: string,\n schema: z.ZodTypeAny,\n history: string = '',\n dependecys: Record<string, any> = {},\n): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfigBase } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\n\n let fieldConfig = fieldConfigBase;\n\n // Enums\n const options = baseSchema._def.values;\n let optionValues: [string, string][] = [];\n if (options) {\n if (!Array.isArray(options)) {\n optionValues = Object.entries(options);\n } else {\n optionValues = options.map((value) => [value, value]);\n }\n }\n\n // Arrays and objects\n const getSubSchema = typeMapping[baseSchema._def.typeName as keyof typeof typeMapping];\n\n const subSchema = getSubSchema?.(baseSchema, name, history, dependecys);\n\n if (baseSchema._def.typeName === 'ZodArray') {\n fieldConfig = {\n min: baseSchema._def.minLength?.value || 1,\n max: baseSchema._def.maxLength?.value,\n ...fieldConfig,\n };\n }\n\n const resp = {\n name: { current: name, history: [history, name].join('.') },\n type,\n required: !schema.isOptional(),\n default: defaultValue,\n fieldConfig,\n options: optionValues,\n schema: subSchema,\n description: baseSchema.description,\n };\n\n return resp;\n}\n\nfunction getBaseSchema<ChildType extends z.ZodAny | z.ZodTypeAny | z.AnyZodObject = z.ZodAny>(\n schema: ChildType | z.ZodEffects<ChildType>,\n): ChildType {\n if ('innerType' in schema._def) {\n return getBaseSchema(schema._def.innerType as ChildType);\n }\n if ('schema' in schema._def) {\n return getBaseSchema(schema._def.schema as ChildType);\n }\n\n return schema as ChildType;\n}\n\nexport const parseSchema = (S: ZodObjectOrWrapped): ParsedSchema => {\n const objectSchema = S instanceof z.ZodEffects ? S.innerType() : S;\n const shape = objectSchema.shape;\n\n const dependecys = (objectSchema._def as any).fieldConfig;\n\n const fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [\n key,\n parseField(key, field as z.ZodTypeAny, '', dependecys),\n ]),\n );\n\n return { fields };\n};\n","import { z } from 'zod';\nimport { FieldConfig } from './types';\n\nexport function inferFieldType(schema: z.ZodTypeAny, fieldType?: FieldConfig['fieldType']): string {\n if (fieldType) {\n return fieldType;\n }\n\n const type = schema._def.typeName;\n\n const zodToInputType = new Map([\n ['ZodObject', 'object'],\n ['ZodString', 'string'],\n ['ZodNumber', 'number'],\n ['ZodBoolean', 'boolean'],\n ['ZodDate', 'date'],\n ['ZodEnum', 'select'],\n ['ZodNativeEnum', 'select'],\n ['ZodArray', 'array'],\n ]);\n\n const match = zodToInputType.get(type);\n\n return match || 'string'; // Default to string for unknown types\n}\n","import { useMemo } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { ZodEffects, ZodObject } from 'zod';\nimport { ZodResolverContext } from './context';\nimport { parseSchema } from './funcs/schema-parser';\n\nconst useSchemaBase = () =>\n useContext(ZodResolverContext) as ZodObject<never, never> | ZodEffects<never, never>;\n\nexport const useFields = <Sc extends Record<string, any>>(key: keyof Sc) => {\n const S = useSchemaBase();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n\ntype Data =\n | Zod.AnyZodObject\n | Zod.ZodEffects<Zod.AnyZodObject>\n | Zod.ZodDiscriminatedUnion<any, any>;\n\ntype DP = Record<string, any>;\n\nexport const useSchema = (cbP: (dp: DP, preData?: Data) => Data, dp: DP) => {\n const schema = useMemo(() => cbP(dp).fieldConfig(dp), [dp]);\n\n return { schema };\n};\n","import { FC, memo, ReactNode } from 'react';\nimport { ZodResolverContext } from './context';\nimport { zodResolverProps } from './type';\nexport const FormInstantProvider: FC<{\n schema: zodResolverProps;\n children: ReactNode;\n}> = memo(({ children, schema }) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n});\n","import { ElementMapping } from '@form-instant/react-input-mapping';\nimport { Fragment, useId } from 'react';\nimport { useFields } from './useSchema';\n\nexport interface ElementProps<Schema extends Record<string, any>> {\n name: keyof Schema;\n}\n\nexport const FormInstantElement = <S extends Record<string, any>>({ name }: ElementProps<S>) => {\n const field = useFields(name);\n\n const inputs = Object.values(field.schema || {});\n\n const id = useId();\n\n return (\n <>\n {inputs.map((props) => {\n return (\n <Fragment key={`${id}-${props.name?.history || ''}`}>\n <ElementMapping formProps={props} />\n </Fragment>\n );\n })}\n </>\n );\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","getFieldConfigInZodStack","fieldConfig","typeMapping","ZodDiscriminatedUnion","baseSchema","name","history","dependecys","_baseSchema$_def","optionsMap","discriminator","Object","keys","length","optionKey","option","get","fields","entries","shape","filter","_ref","map","_ref2","parseField","join","unshift","current","type","required","default","options","Array","from","key","String","ZodObject","_ref3","ZodArray","getBaseSchema","_getFieldConfigInZodS","fieldType","fieldConfigBase","_objectWithoutPropertiesLoose","_excluded","typeName","Map","inferFieldType","values","optionValues","isArray","value","_baseSchema$_def$minL","_baseSchema$_def$maxL","getSubSchema","subSchema","_extends","min","minLength","max","maxLength","isOptional","description","useFields","S","objectSchema","_parseSchema","useContext","fromEntries","_ref4","FormInstantProvider","memo","_jsx","jsx","Provider","children","field","inputs","id","useId","props","_props$name","Fragment","ElementMapping","formProps","cbP","dp","useMemo"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"react-resolver-zod.cjs.production.min.js","sources":["../src/context.tsx","../src/funcs/default-values.ts","../src/funcs/field-config.ts","../src/funcs/field-type-inference.ts","../src/funcs/schema-parser.ts","../src/useSchema.tsx","../src/element.tsx","../src/provider.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport { zodResolverProps } from './type';\n\nexport const ZodResolverContext = createContext<zodResolverProps>({} as zodResolverProps);\n","import { z, ZodEffects } from 'zod';\nimport { ZodObjectOrWrapped } from './types';\n\nexport function getDefaultValueInZodStack(schema: z.ZodTypeAny): any {\n if (schema._def.typeName === 'ZodDefault') {\n return schema._def.defaultValue();\n }\n\n if (schema._def.typeName === 'ZodEffects') {\n return getDefaultValueInZodStack((schema as ZodEffects<any>).innerType());\n }\n\n return undefined;\n}\n\nexport function getDefaultValues(schema: ZodObjectOrWrapped): Record<string, any> {\n const objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;\n const shape = objectSchema.shape;\n\n const defaultValues: Record<string, any> = {};\n\n for (const [key, field] of Object.entries(shape)) {\n const defaultValue = getDefaultValueInZodStack(field as z.ZodTypeAny);\n if (defaultValue !== undefined) {\n defaultValues[key] = defaultValue;\n }\n }\n\n return defaultValues;\n}\n","import z from 'zod';\nimport { FieldConfig, SuperRefineFunction } from './types';\n\nexport const FIELD_CONFIG_SYMBOL = Symbol('GetFieldConfig');\n\ndeclare module 'zod' {\n interface ZodType {\n fieldConfig<Ob extends Record<string, any>>(config: FieldConfig<Ob, keyof Ob>): this;\n }\n}\n\nexport const extendZodWithFieldConfig = (zod: typeof z) => {\n (zod.ZodType.prototype as any).fieldConfig = function (config: FieldConfig<any, any>) {\n this._def.fieldConfig = config;\n return this;\n };\n\n const { object, array, ...zodRest } = zod;\n\n zod = {\n object: ((...args: [any]) => {\n const schema = object(...args);\n (schema._def as any).default = () => ({});\n return schema;\n }) as any,\n array: ((...args: [any]) => {\n const schema = array(...args);\n (schema._def as any).default = () => [];\n return schema;\n }) as any,\n ...zodRest,\n };\n};\n\nexport const createZodSchemaFieldConfig =\n <Ob extends Record<string, any>, K extends keyof Ob>() =>\n (config: FieldConfig<Ob, K>): SuperRefineFunction => {\n const refinementFunction: SuperRefineFunction = () => {\n // Do nothing.\n };\n\n // @ts-expect-error This is a symbol and not a real value.\n refinementFunction[FIELD_CONFIG_SYMBOL] = config;\n\n return refinementFunction;\n };\n\nexport function getFieldConfigInZodStack(schema: z.ZodTypeAny): FieldConfig<any, any> {\n // Verifica si el esquema tiene fieldConfig directamente\n if (schema._def.fieldConfig) {\n return schema._def.fieldConfig as FieldConfig<any, any>;\n }\n\n // Si el esquema es un ZodEffects, busca en el innerType\n if ('innerType' in schema._def) {\n return getFieldConfigInZodStack(schema._def.innerType as z.ZodAny);\n }\n\n // Si el esquema es un ZodEffects con un schema interno, busca en el schema\n if ('schema' in schema._def) {\n return getFieldConfigInZodStack(schema._def.schema as z.ZodAny);\n }\n\n // Si no se encuentra fieldConfig, retorna un objeto vacío\n return {} as FieldConfig<any, any>;\n}\n","import { z } from 'zod';\nimport { FieldConfig } from './types';\n\nexport function inferFieldType<Ob extends Record<string, any>, K extends keyof Ob>(\n schema: z.ZodTypeAny,\n fieldType?: FieldConfig<Ob, K>['fieldType']\n): string {\n if (fieldType) {\n return fieldType;\n }\n\n const type = schema._def.typeName;\n\n const zodToInputType = new Map([\n ['ZodObject', 'object'],\n ['ZodString', 'string'],\n ['ZodNumber', 'number'],\n ['ZodBoolean', 'boolean'],\n ['ZodDate', 'date'],\n ['ZodEnum', 'select'],\n ['ZodNativeEnum', 'select'],\n ['ZodArray', 'array'],\n ]);\n\n const match = zodToInputType.get(type);\n\n return match || 'string'; // Default to string for unknown types\n}\n","import { ParsedField } from '@form-instant/react-input-mapping';\nimport { z } from 'zod';\nimport { getDefaultValueInZodStack } from './default-values';\nimport { getFieldConfigInZodStack } from './field-config';\nimport { inferFieldType } from './field-type-inference';\nimport { ParsedSchema, ZodObjectOrWrapped } from './types';\n\ninterface typeMappingProps {\n schema: z.ZodTypeAny;\n name: string;\n history?: string;\n dependecys: Record<string, any>;\n}\n\ntype typeMappingType = Record<\n 'ZodDiscriminatedUnion' | 'ZodObject' | 'ZodArray',\n (p: typeMappingProps) => ParsedField<any, string>[]\n>;\n\nconst typeMapping: typeMappingType = {\n ZodDiscriminatedUnion({ schema, name, history, dependecys }) {\n const { optionsMap, discriminator, fieldConfig } = schema._def;\n\n if (!Object.keys(dependecys).length) return [{}] as ParsedField<any, string>[];\n\n const optionKey = dependecys[discriminator];\n const option = optionsMap.get(optionKey);\n\n if (!option) return [{}] as ParsedField<any, string>[];\n\n const entries = Object.entries(option.shape);\n\n const fields = entries\n .filter(([key]) => key !== discriminator)\n .map(([key, field]) => {\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n return parseField({\n name: key,\n schema: field as z.ZodTypeAny,\n history: historyFormat,\n dependecys,\n });\n });\n\n let historyFormat = (history ? [history, name, discriminator] : [name, discriminator]).join(\n '.',\n );\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n\n fields.unshift({\n name: {\n current: discriminator,\n history: historyFormat,\n },\n type: 'discriminator',\n required: true,\n default: optionKey,\n fieldConfig,\n options: Array.from(optionsMap.keys()).map((key) => [String(key), String(key)]),\n });\n\n return fields;\n },\n\n ZodObject({ schema, name, history, dependecys }) {\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n return Object.entries((schema as any).shape).map(([key, field]) =>\n parseField({\n name: key,\n schema: field as z.ZodTypeAny,\n history: historyFormat,\n dependecys,\n }),\n );\n },\n\n ZodArray({ schema, name, history, dependecys }) {\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n return [\n parseField({\n name: '0',\n schema: schema._def.type,\n history: historyFormat,\n dependecys,\n }),\n ];\n },\n};\n\nfunction parseField({\n name,\n schema,\n history,\n dependecys = {},\n}: typeMappingProps): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfigBase } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\n\n let fieldConfig = fieldConfigBase;\n\n // Enums\n const options = baseSchema._def.values;\n let optionValues: [string, string][] = [];\n if (options) {\n if (!Array.isArray(options)) {\n optionValues = Object.entries(options);\n } else {\n optionValues = options.map((value) => [value, value]);\n }\n }\n\n const { typeName } = baseSchema._def;\n\n // Arrays and objects\n const getSubSchema = typeMapping[typeName as keyof typeof typeMapping];\n\n const subSchema = getSubSchema?.({\n name,\n schema: baseSchema,\n history,\n dependecys,\n });\n\n if (typeName === 'ZodDiscriminatedUnion') {\n const { optionsMap, discriminator } = baseSchema._def;\n\n const optionKey = dependecys[discriminator];\n\n if (optionKey) {\n const option = optionsMap.get(optionKey);\n\n if (option._def.fieldConfig) {\n fieldConfig = {\n ...fieldConfigBase,\n ...option._def.fieldConfig,\n };\n }\n }\n }\n\n if (type === 'array')\n fieldConfig = {\n min: baseSchema._def.minLength?.value || 1,\n max: baseSchema._def.maxLength?.value,\n ...fieldConfig,\n };\n\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n\n const resp = {\n name: {\n current: name,\n history: historyFormat,\n },\n type,\n required: !schema.isOptional(),\n default: defaultValue,\n fieldConfig,\n options: optionValues,\n schema: subSchema,\n description: baseSchema.description,\n };\n\n return resp;\n}\n\nfunction getBaseSchema<ChildType extends z.ZodAny | z.ZodTypeAny | z.AnyZodObject = z.ZodAny>(\n schema: ChildType | z.ZodEffects<ChildType>,\n): ChildType {\n if ('innerType' in schema._def) {\n return getBaseSchema(schema._def.innerType as ChildType);\n }\n if ('schema' in schema._def) {\n return getBaseSchema(schema._def.schema as ChildType);\n }\n\n return schema as ChildType;\n}\n\nexport const parseSchema = (S: ZodObjectOrWrapped): ParsedSchema => {\n const objectSchema = S instanceof z.ZodEffects ? S.innerType() : S;\n const shape = objectSchema.shape;\n\n const dependecys = (objectSchema._def as any).fieldConfig?.dp || {};\n\n const fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [\n key,\n parseField({\n name: key,\n schema: field as z.ZodTypeAny,\n dependecys,\n }),\n ]),\n );\n\n return { fields };\n};\n","import { useContext, useMemo } from 'react';\nimport { z, ZodEffects, ZodObject } from 'zod';\nimport { ZodResolverContext } from './context';\nimport { parseSchema } from './funcs/schema-parser';\n\nconst useSchemaBase = () =>\n useContext(ZodResolverContext) as ZodObject<never, never> | ZodEffects<never, never>;\n\nexport const useFields = <Sc extends Record<string, any>>(key: keyof Sc) => {\n const S = useSchemaBase();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n\ntype Data = z.AnyZodObject | z.ZodEffects<z.AnyZodObject> | z.ZodDiscriminatedUnion<any, any>;\n\ntype DP = Record<string, any>;\n\nexport const generateInitialValues = <S extends Record<string, any>>(schema: Data, dp: DP): S => {\n try {\n const shape = (() => {\n if (schema._def.typeName === 'ZodEffects')\n return (schema as z.ZodEffects<any>).innerType().shape;\n if (schema._def.typeName === 'ZodObject') return (schema as z.ZodObject<any>).shape;\n\n const option = schema._def.optionsMap.get(dp[schema._def.discriminator]);\n\n if (!option) throw new Error('No option found');\n\n return option.shape;\n })();\n\n const initialValues: Record<string, any> = {};\n\n for (const key of Object.keys(shape)) {\n const fieldSchema = shape[key];\n const result = fieldSchema.safeParse(undefined);\n\n // Si tiene valor por defecto\n if (result.success) {\n initialValues[key] = result.data;\n continue;\n }\n\n if (Object.keys(dp).includes(key)) {\n initialValues[key] = dp[key];\n continue;\n }\n // Inferir tipo para campos requeridos sin default\n const fieldConfig = {\n ZodString() {\n initialValues[key] = '';\n },\n ZodNumber() {\n initialValues[key] = 0;\n },\n ZodBoolean() {\n initialValues[key] = false;\n },\n ZodDate() {\n initialValues[key] = null;\n },\n ZodArray() {\n initialValues[key] = [];\n },\n ZodObject() {\n initialValues[key] = generateInitialValues(fieldSchema, dp);\n },\n ZodDiscriminatedUnion() {\n const option = fieldSchema._def.optionsMap.get(\n dp[fieldSchema._def.discriminator],\n );\n\n if (option) {\n initialValues[key] = generateInitialValues(option, dp);\n } else {\n initialValues[key] = null;\n }\n },\n };\n\n const fieldType = fieldSchema._def.typeName;\n const fieldHandler = fieldConfig[fieldType as keyof typeof fieldConfig];\n\n if (fieldHandler) {\n fieldHandler();\n continue;\n }\n\n initialValues[key] = null;\n }\n\n return initialValues as S;\n } catch (error) {\n console.log('🔴 initialValues error', error);\n\n if (error instanceof Error) {\n console.log(error.cause);\n console.log(error.message);\n }\n\n return {} as S;\n }\n};\n\nexport const useSchema = <S extends Record<string, any>>(\n cbP: (dp: DP, preData?: Data) => Data,\n dp: DP,\n) => {\n const schema = useMemo(\n () => (cbP(dp) as any).fieldConfig({ dp, ...cbP(dp).fieldConfig }),\n [cbP, JSON.stringify(dp)],\n );\n\n const initialValues = useMemo(\n () => generateInitialValues(schema, dp) as S,\n [schema, JSON.stringify(dp)],\n );\n\n return { schema, initialValues };\n};\n","import { ElementMapping } from '@form-instant/react-input-mapping';\nimport { Fragment, useId } from 'react';\nimport { useFields } from './useSchema';\n\nexport interface ElementProps<Schema extends Record<string, any>> {\n name: keyof Schema;\n}\n\nexport const FormInstantElement = <S extends Record<string, any>>({ name }: ElementProps<S>) => {\n const field = useFields(name);\n\n const id = useId();\n\n if ((field.fieldConfig as any)?.type || !['object', 'transform'].includes(field.type))\n return <ElementMapping formProps={field} />;\n\n return (\n <>\n {Object.values(field.schema || {}).map((props: any) => {\n return (\n <Fragment key={`${id}-${props.name?.history || ''}`}>\n <ElementMapping formProps={props} />\n </Fragment>\n );\n })}\n </>\n );\n};\n","import { FC, ReactNode } from 'react';\nimport { ZodResolverContext } from './context';\nimport { zodResolverProps } from './type';\n\nexport const FormInstantProvider: FC<{\n schema: zodResolverProps;\n children: ReactNode;\n}> = ({ children, schema }) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","_def","typeName","defaultValue","innerType","FIELD_CONFIG_SYMBOL","Symbol","getFieldConfigInZodStack","fieldConfig","inferFieldType","fieldType","type","Map","get","typeMapping","ZodDiscriminatedUnion","_ref","name","history","dependecys","_schema$_def","optionsMap","discriminator","Object","keys","length","optionKey","option","fields","entries","shape","filter","_ref2","map","_ref3","key","field","historyFormat","join","charAt","substring","parseField","unshift","current","required","default","options","Array","from","String","ZodObject","_ref4","_ref5","ZodArray","_ref6","_ref7","_baseSchema$_def$minL","_baseSchema$_def$maxL","_ref7$dependecys","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldConfigBase","_objectWithoutPropertiesLoose","_excluded","values","optionValues","isArray","value","getSubSchema","subSchema","_baseSchema$_def","_extends","min","minLength","max","maxLength","isOptional","description","parseSchema","S","_objectSchema$_def$fi","objectSchema","z","ZodEffects","dp","fromEntries","_ref8","useFields","useContext","generateInitialValues","Error","initialValues","_loop","_Object$keys","_i","fieldSchema","result","safeParse","undefined","success","data","includes","fieldHandler","ZodString","ZodNumber","ZodBoolean","ZodDate","error","console","log","cause","message","_field$fieldConfig","id","useId","_jsx","ElementMapping","formProps","_Fragment","children","props","_props$name","Fragment","jsx","Provider","config","refinementFunction","zod","ZodType","prototype","this","object","array","apply","arguments","defaultValues","_Object$entries","_Object$entries$_i","cbP","useMemo","JSON","stringify"],"mappings":"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"}
|
@@ -1,7 +1,6 @@
|
|
1
|
-
import { createContext, useContext } from '
|
1
|
+
import { createContext, useMemo, useContext, useId, Fragment as Fragment$1 } from 'react';
|
2
2
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
3
3
|
import { ElementMapping } from '@form-instant/react-input-mapping';
|
4
|
-
import { useMemo, useId, Fragment as Fragment$1, memo } from 'react';
|
5
4
|
import { z } from 'zod';
|
6
5
|
|
7
6
|
var ZodResolverContext = /*#__PURE__*/createContext({});
|
@@ -19,22 +18,75 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
19
18
|
if (null == r) return {};
|
20
19
|
var t = {};
|
21
20
|
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
22
|
-
if (e.
|
21
|
+
if (-1 !== e.indexOf(n)) continue;
|
23
22
|
t[n] = r[n];
|
24
23
|
}
|
25
24
|
return t;
|
26
25
|
}
|
27
26
|
|
28
27
|
function getDefaultValueInZodStack(schema) {
|
29
|
-
if (schema
|
28
|
+
if (schema._def.typeName === 'ZodDefault') {
|
30
29
|
return schema._def.defaultValue();
|
31
30
|
}
|
32
|
-
if (schema
|
31
|
+
if (schema._def.typeName === 'ZodEffects') {
|
33
32
|
return getDefaultValueInZodStack(schema.innerType());
|
34
33
|
}
|
35
34
|
return undefined;
|
36
35
|
}
|
36
|
+
function getDefaultValues(schema) {
|
37
|
+
var objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;
|
38
|
+
var shape = objectSchema.shape;
|
39
|
+
var defaultValues = {};
|
40
|
+
for (var _i = 0, _Object$entries = Object.entries(shape); _i < _Object$entries.length; _i++) {
|
41
|
+
var _Object$entries$_i = _Object$entries[_i],
|
42
|
+
key = _Object$entries$_i[0],
|
43
|
+
field = _Object$entries$_i[1];
|
44
|
+
var defaultValue = getDefaultValueInZodStack(field);
|
45
|
+
if (defaultValue !== undefined) {
|
46
|
+
defaultValues[key] = defaultValue;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
return defaultValues;
|
50
|
+
}
|
37
51
|
|
52
|
+
var _excluded$1 = ["object", "array"];
|
53
|
+
var FIELD_CONFIG_SYMBOL = /*#__PURE__*/Symbol('GetFieldConfig');
|
54
|
+
var extendZodWithFieldConfig = function extendZodWithFieldConfig(zod) {
|
55
|
+
zod.ZodType.prototype.fieldConfig = function (config) {
|
56
|
+
this._def.fieldConfig = config;
|
57
|
+
return this;
|
58
|
+
};
|
59
|
+
var _zod = zod,
|
60
|
+
_object = _zod.object,
|
61
|
+
_array = _zod.array,
|
62
|
+
zodRest = _objectWithoutPropertiesLoose(_zod, _excluded$1);
|
63
|
+
zod = _extends({
|
64
|
+
object: function object() {
|
65
|
+
var schema = _object.apply(void 0, arguments);
|
66
|
+
schema._def["default"] = function () {
|
67
|
+
return {};
|
68
|
+
};
|
69
|
+
return schema;
|
70
|
+
},
|
71
|
+
array: function array() {
|
72
|
+
var schema = _array.apply(void 0, arguments);
|
73
|
+
schema._def["default"] = function () {
|
74
|
+
return [];
|
75
|
+
};
|
76
|
+
return schema;
|
77
|
+
}
|
78
|
+
}, zodRest);
|
79
|
+
};
|
80
|
+
var createZodSchemaFieldConfig = function createZodSchemaFieldConfig() {
|
81
|
+
return function (config) {
|
82
|
+
var refinementFunction = function refinementFunction() {
|
83
|
+
// Do nothing.
|
84
|
+
};
|
85
|
+
// @ts-expect-error This is a symbol and not a real value.
|
86
|
+
refinementFunction[FIELD_CONFIG_SYMBOL] = config;
|
87
|
+
return refinementFunction;
|
88
|
+
};
|
89
|
+
};
|
38
90
|
function getFieldConfigInZodStack(schema) {
|
39
91
|
// Verifica si el esquema tiene fieldConfig directamente
|
40
92
|
if (schema._def.fieldConfig) {
|
@@ -64,28 +116,41 @@ function inferFieldType(schema, fieldType) {
|
|
64
116
|
|
65
117
|
var _excluded = ["fieldType"];
|
66
118
|
var typeMapping = {
|
67
|
-
ZodDiscriminatedUnion: function ZodDiscriminatedUnion(
|
68
|
-
var
|
69
|
-
|
70
|
-
|
71
|
-
|
119
|
+
ZodDiscriminatedUnion: function ZodDiscriminatedUnion(_ref) {
|
120
|
+
var schema = _ref.schema,
|
121
|
+
name = _ref.name,
|
122
|
+
history = _ref.history,
|
123
|
+
dependecys = _ref.dependecys;
|
124
|
+
var _schema$_def = schema._def,
|
125
|
+
optionsMap = _schema$_def.optionsMap,
|
126
|
+
discriminator = _schema$_def.discriminator,
|
127
|
+
fieldConfig = _schema$_def.fieldConfig;
|
72
128
|
if (!Object.keys(dependecys).length) return [{}];
|
73
129
|
var optionKey = dependecys[discriminator];
|
74
130
|
var option = optionsMap.get(optionKey);
|
75
131
|
if (!option) return [{}];
|
76
132
|
var entries = Object.entries(option.shape);
|
77
|
-
var fields = entries.filter(function (
|
78
|
-
var key =
|
133
|
+
var fields = entries.filter(function (_ref2) {
|
134
|
+
var key = _ref2[0];
|
79
135
|
return key !== discriminator;
|
80
|
-
}).map(function (
|
81
|
-
var key =
|
82
|
-
field =
|
83
|
-
|
136
|
+
}).map(function (_ref3) {
|
137
|
+
var key = _ref3[0],
|
138
|
+
field = _ref3[1];
|
139
|
+
var historyFormat = (history ? [history, name] : [name]).join('.');
|
140
|
+
if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
|
141
|
+
return parseField({
|
142
|
+
name: key,
|
143
|
+
schema: field,
|
144
|
+
history: historyFormat,
|
145
|
+
dependecys: dependecys
|
146
|
+
});
|
84
147
|
});
|
148
|
+
var historyFormat = (history ? [history, name, discriminator] : [name, discriminator]).join('.');
|
149
|
+
if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
|
85
150
|
fields.unshift({
|
86
151
|
name: {
|
87
152
|
current: discriminator,
|
88
|
-
history:
|
153
|
+
history: historyFormat
|
89
154
|
},
|
90
155
|
type: 'discriminator',
|
91
156
|
required: true,
|
@@ -97,24 +162,46 @@ var typeMapping = {
|
|
97
162
|
});
|
98
163
|
return fields;
|
99
164
|
},
|
100
|
-
ZodObject: function ZodObject(
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
165
|
+
ZodObject: function ZodObject(_ref4) {
|
166
|
+
var schema = _ref4.schema,
|
167
|
+
name = _ref4.name,
|
168
|
+
history = _ref4.history,
|
169
|
+
dependecys = _ref4.dependecys;
|
170
|
+
var historyFormat = (history ? [history, name] : [name]).join('.');
|
171
|
+
if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
|
172
|
+
return Object.entries(schema.shape).map(function (_ref5) {
|
173
|
+
var key = _ref5[0],
|
174
|
+
field = _ref5[1];
|
175
|
+
return parseField({
|
176
|
+
name: key,
|
177
|
+
schema: field,
|
178
|
+
history: historyFormat,
|
179
|
+
dependecys: dependecys
|
180
|
+
});
|
105
181
|
});
|
106
182
|
},
|
107
|
-
ZodArray: function ZodArray(
|
108
|
-
|
183
|
+
ZodArray: function ZodArray(_ref6) {
|
184
|
+
var schema = _ref6.schema,
|
185
|
+
name = _ref6.name,
|
186
|
+
history = _ref6.history,
|
187
|
+
dependecys = _ref6.dependecys;
|
188
|
+
var historyFormat = (history ? [history, name] : [name]).join('.');
|
189
|
+
if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
|
190
|
+
return [parseField({
|
191
|
+
name: '0',
|
192
|
+
schema: schema._def.type,
|
193
|
+
history: historyFormat,
|
194
|
+
dependecys: dependecys
|
195
|
+
})];
|
109
196
|
}
|
110
197
|
};
|
111
|
-
function parseField(
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
dependecys =
|
117
|
-
|
198
|
+
function parseField(_ref7) {
|
199
|
+
var _baseSchema$_def$minL, _baseSchema$_def$maxL;
|
200
|
+
var name = _ref7.name,
|
201
|
+
schema = _ref7.schema,
|
202
|
+
history = _ref7.history,
|
203
|
+
_ref7$dependecys = _ref7.dependecys,
|
204
|
+
dependecys = _ref7$dependecys === void 0 ? {} : _ref7$dependecys;
|
118
205
|
var baseSchema = getBaseSchema(schema);
|
119
206
|
var _getFieldConfigInZodS = getFieldConfigInZodStack(schema),
|
120
207
|
fieldType = _getFieldConfigInZodS.fieldType,
|
@@ -134,20 +221,37 @@ function parseField(name, schema, history, dependecys) {
|
|
134
221
|
});
|
135
222
|
}
|
136
223
|
}
|
224
|
+
var typeName = baseSchema._def.typeName;
|
137
225
|
// Arrays and objects
|
138
|
-
var getSubSchema = typeMapping[
|
139
|
-
var subSchema = getSubSchema == null ? void 0 : getSubSchema(
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
226
|
+
var getSubSchema = typeMapping[typeName];
|
227
|
+
var subSchema = getSubSchema == null ? void 0 : getSubSchema({
|
228
|
+
name: name,
|
229
|
+
schema: baseSchema,
|
230
|
+
history: history,
|
231
|
+
dependecys: dependecys
|
232
|
+
});
|
233
|
+
if (typeName === 'ZodDiscriminatedUnion') {
|
234
|
+
var _baseSchema$_def = baseSchema._def,
|
235
|
+
optionsMap = _baseSchema$_def.optionsMap,
|
236
|
+
discriminator = _baseSchema$_def.discriminator;
|
237
|
+
var optionKey = dependecys[discriminator];
|
238
|
+
if (optionKey) {
|
239
|
+
var option = optionsMap.get(optionKey);
|
240
|
+
if (option._def.fieldConfig) {
|
241
|
+
fieldConfig = _extends({}, fieldConfigBase, option._def.fieldConfig);
|
242
|
+
}
|
243
|
+
}
|
146
244
|
}
|
245
|
+
if (type === 'array') fieldConfig = _extends({
|
246
|
+
min: ((_baseSchema$_def$minL = baseSchema._def.minLength) == null ? void 0 : _baseSchema$_def$minL.value) || 1,
|
247
|
+
max: (_baseSchema$_def$maxL = baseSchema._def.maxLength) == null ? void 0 : _baseSchema$_def$maxL.value
|
248
|
+
}, fieldConfig);
|
249
|
+
var historyFormat = (history ? [history, name] : [name]).join('.');
|
250
|
+
if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
|
147
251
|
var resp = {
|
148
252
|
name: {
|
149
253
|
current: name,
|
150
|
-
history:
|
254
|
+
history: historyFormat
|
151
255
|
},
|
152
256
|
type: type,
|
153
257
|
required: !schema.isOptional(),
|
@@ -169,13 +273,18 @@ function getBaseSchema(schema) {
|
|
169
273
|
return schema;
|
170
274
|
}
|
171
275
|
var parseSchema = function parseSchema(S) {
|
276
|
+
var _objectSchema$_def$fi;
|
172
277
|
var objectSchema = S instanceof z.ZodEffects ? S.innerType() : S;
|
173
278
|
var shape = objectSchema.shape;
|
174
|
-
var dependecys = objectSchema._def.fieldConfig;
|
175
|
-
var fields = Object.fromEntries(Object.entries(shape).map(function (
|
176
|
-
var key =
|
177
|
-
field =
|
178
|
-
return [key, parseField(
|
279
|
+
var dependecys = ((_objectSchema$_def$fi = objectSchema._def.fieldConfig) == null ? void 0 : _objectSchema$_def$fi.dp) || {};
|
280
|
+
var fields = Object.fromEntries(Object.entries(shape).map(function (_ref8) {
|
281
|
+
var key = _ref8[0],
|
282
|
+
field = _ref8[1];
|
283
|
+
return [key, parseField({
|
284
|
+
name: key,
|
285
|
+
schema: field,
|
286
|
+
dependecys: dependecys
|
287
|
+
})];
|
179
288
|
}));
|
180
289
|
return {
|
181
290
|
fields: fields
|
@@ -191,22 +300,106 @@ var useFields = function useFields(key) {
|
|
191
300
|
fields = _parseSchema.fields;
|
192
301
|
return fields[key];
|
193
302
|
};
|
303
|
+
var _generateInitialValues = function generateInitialValues(schema, dp) {
|
304
|
+
try {
|
305
|
+
var shape = function () {
|
306
|
+
if (schema._def.typeName === 'ZodEffects') return schema.innerType().shape;
|
307
|
+
if (schema._def.typeName === 'ZodObject') return schema.shape;
|
308
|
+
var option = schema._def.optionsMap.get(dp[schema._def.discriminator]);
|
309
|
+
if (!option) throw new Error('No option found');
|
310
|
+
return option.shape;
|
311
|
+
}();
|
312
|
+
var initialValues = {};
|
313
|
+
var _loop = function _loop() {
|
314
|
+
var key = _Object$keys[_i];
|
315
|
+
var fieldSchema = shape[key];
|
316
|
+
var result = fieldSchema.safeParse(undefined);
|
317
|
+
// Si tiene valor por defecto
|
318
|
+
if (result.success) {
|
319
|
+
initialValues[key] = result.data;
|
320
|
+
return 0; // continue
|
321
|
+
}
|
322
|
+
if (Object.keys(dp).includes(key)) {
|
323
|
+
initialValues[key] = dp[key];
|
324
|
+
return 0; // continue
|
325
|
+
}
|
326
|
+
// Inferir tipo para campos requeridos sin default
|
327
|
+
var fieldConfig = {
|
328
|
+
ZodString: function ZodString() {
|
329
|
+
initialValues[key] = '';
|
330
|
+
},
|
331
|
+
ZodNumber: function ZodNumber() {
|
332
|
+
initialValues[key] = 0;
|
333
|
+
},
|
334
|
+
ZodBoolean: function ZodBoolean() {
|
335
|
+
initialValues[key] = false;
|
336
|
+
},
|
337
|
+
ZodDate: function ZodDate() {
|
338
|
+
initialValues[key] = null;
|
339
|
+
},
|
340
|
+
ZodArray: function ZodArray() {
|
341
|
+
initialValues[key] = [];
|
342
|
+
},
|
343
|
+
ZodObject: function ZodObject() {
|
344
|
+
initialValues[key] = _generateInitialValues(fieldSchema, dp);
|
345
|
+
},
|
346
|
+
ZodDiscriminatedUnion: function ZodDiscriminatedUnion() {
|
347
|
+
var option = fieldSchema._def.optionsMap.get(dp[fieldSchema._def.discriminator]);
|
348
|
+
if (option) {
|
349
|
+
initialValues[key] = _generateInitialValues(option, dp);
|
350
|
+
} else {
|
351
|
+
initialValues[key] = null;
|
352
|
+
}
|
353
|
+
}
|
354
|
+
};
|
355
|
+
var fieldType = fieldSchema._def.typeName;
|
356
|
+
var fieldHandler = fieldConfig[fieldType];
|
357
|
+
if (fieldHandler) {
|
358
|
+
fieldHandler();
|
359
|
+
return 0; // continue
|
360
|
+
}
|
361
|
+
initialValues[key] = null;
|
362
|
+
},
|
363
|
+
_ret;
|
364
|
+
for (var _i = 0, _Object$keys = Object.keys(shape); _i < _Object$keys.length; _i++) {
|
365
|
+
_ret = _loop();
|
366
|
+
if (_ret === 0) continue;
|
367
|
+
}
|
368
|
+
return initialValues;
|
369
|
+
} catch (error) {
|
370
|
+
console.log('🔴 initialValues error', error);
|
371
|
+
if (error instanceof Error) {
|
372
|
+
console.log(error.cause);
|
373
|
+
console.log(error.message);
|
374
|
+
}
|
375
|
+
return {};
|
376
|
+
}
|
377
|
+
};
|
194
378
|
var useSchema = function useSchema(cbP, dp) {
|
195
379
|
var schema = useMemo(function () {
|
196
|
-
return cbP(dp).fieldConfig(
|
197
|
-
|
380
|
+
return cbP(dp).fieldConfig(_extends({
|
381
|
+
dp: dp
|
382
|
+
}, cbP(dp).fieldConfig));
|
383
|
+
}, [cbP, JSON.stringify(dp)]);
|
384
|
+
var initialValues = useMemo(function () {
|
385
|
+
return _generateInitialValues(schema, dp);
|
386
|
+
}, [schema, JSON.stringify(dp)]);
|
198
387
|
return {
|
199
|
-
schema: schema
|
388
|
+
schema: schema,
|
389
|
+
initialValues: initialValues
|
200
390
|
};
|
201
391
|
};
|
202
392
|
|
203
393
|
var FormInstantElement = function FormInstantElement(_ref) {
|
394
|
+
var _field$fieldConfig;
|
204
395
|
var name = _ref.name;
|
205
396
|
var field = useFields(name);
|
206
|
-
var inputs = Object.values(field.schema || {});
|
207
397
|
var id = useId();
|
398
|
+
if ((_field$fieldConfig = field.fieldConfig) != null && _field$fieldConfig.type || !['object', 'transform'].includes(field.type)) return jsx(ElementMapping, {
|
399
|
+
formProps: field
|
400
|
+
});
|
208
401
|
return jsx(Fragment, {
|
209
|
-
children:
|
402
|
+
children: Object.values(field.schema || {}).map(function (props) {
|
210
403
|
var _props$name;
|
211
404
|
return jsx(Fragment$1, {
|
212
405
|
children: jsx(ElementMapping, {
|
@@ -217,14 +410,14 @@ var FormInstantElement = function FormInstantElement(_ref) {
|
|
217
410
|
});
|
218
411
|
};
|
219
412
|
|
220
|
-
var FormInstantProvider =
|
413
|
+
var FormInstantProvider = function FormInstantProvider(_ref) {
|
221
414
|
var children = _ref.children,
|
222
415
|
schema = _ref.schema;
|
223
416
|
return jsx(ZodResolverContext.Provider, {
|
224
417
|
value: schema,
|
225
418
|
children: children
|
226
419
|
});
|
227
|
-
}
|
420
|
+
};
|
228
421
|
|
229
|
-
export { FormInstantElement, FormInstantProvider, ZodResolverContext, useFields, useSchema };
|
422
|
+
export { FIELD_CONFIG_SYMBOL, FormInstantElement, FormInstantProvider, ZodResolverContext, createZodSchemaFieldConfig, extendZodWithFieldConfig, _generateInitialValues as generateInitialValues, getDefaultValueInZodStack, getDefaultValues, getFieldConfigInZodStack, inferFieldType, parseSchema, useFields, useSchema };
|
230
423
|
//# sourceMappingURL=react-resolver-zod.esm.js.map
|