@form-instant/react-resolver-zod 0.0.12-alpha → 0.0.14-alpha
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/react-resolver-zod.cjs.development.js +4 -4
- 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 +2 -2
- package/dist/react-resolver-zod.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/context.tsx +1 -1
- package/src/element.tsx +5 -3
- package/src/useSchema.tsx +1 -1
package/dist/context.d.ts
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
4
|
-
var react = require('react');
|
5
4
|
var reactInputMapping = require('@form-instant/react-input-mapping');
|
6
|
-
var
|
5
|
+
var react = require('react');
|
7
6
|
var zod = require('zod');
|
8
7
|
|
9
8
|
function _extends() {
|
@@ -25,7 +24,7 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
25
24
|
return t;
|
26
25
|
}
|
27
26
|
|
28
|
-
var ZodResolverContext = /*#__PURE__*/
|
27
|
+
var ZodResolverContext = /*#__PURE__*/react.createContext({});
|
29
28
|
|
30
29
|
function getDefaultValueInZodStack(schema) {
|
31
30
|
if (schema instanceof zod.z.ZodDefault) {
|
@@ -143,7 +142,7 @@ var parseSchema = function parseSchema(S) {
|
|
143
142
|
};
|
144
143
|
|
145
144
|
var useSchema = function useSchema() {
|
146
|
-
return
|
145
|
+
return react.useContext(ZodResolverContext);
|
147
146
|
};
|
148
147
|
var useFields = function useFields(key) {
|
149
148
|
var S = useSchema();
|
@@ -164,6 +163,7 @@ var FormInstantElement = function FormInstantElement(_ref) {
|
|
164
163
|
var Element = InputMapping.get(props.type);
|
165
164
|
var key = props.key,
|
166
165
|
prop = _objectWithoutPropertiesLoose(props, _excluded);
|
166
|
+
if (!Element) return null;
|
167
167
|
return react.createElement(Element, _extends({}, prop, {
|
168
168
|
key: key + "-" + id
|
169
169
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"react-resolver-zod.cjs.development.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 \"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 { RefinementEffect, z } from \"zod\";\nimport { FieldConfig, SuperRefineFunction } from \"./types\";\nexport const FIELD_CONFIG_SYMBOL = Symbol(\"GetFieldConfig\");\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 const typedSchema = schema as unknown as z.ZodEffects<z.ZodNumber | z.ZodString>;\n\n if (typedSchema._def.typeName === \"ZodEffects\") {\n const effect = typedSchema._def.effect as RefinementEffect<any>;\n const refinementFunction = effect.refinement;\n\n if (FIELD_CONFIG_SYMBOL in refinementFunction) {\n return refinementFunction[FIELD_CONFIG_SYMBOL] as FieldConfig;\n }\n }\n\n if (\"innerType\" in typedSchema._def) {\n return getFieldConfigInZodStack(typedSchema._def.innerType as unknown as z.ZodAny);\n }\n if (\"schema\" in typedSchema._def) {\n return getFieldConfigInZodStack((typedSchema._def as any).schema as z.ZodAny);\n }\n\n return {};\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 { z } from \"zod\";\nimport { getDefaultValueInZodStack } from \"./default-values\";\nimport { getFieldConfigInZodStack } from \"./field-config\";\nimport { inferFieldType } from \"./field-type-inference\";\nimport { ParsedField, ParsedSchema, ZodObjectOrWrapped } from \"./types\";\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfig } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\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 let subSchema: ParsedField<any>[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny),\n );\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField(\"0\", baseSchema._def.type)];\n }\n\n const resp = {\n key,\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 fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [key, parseField(key, field as z.ZodTypeAny)]),\n );\n\n return { fields };\n};\n","import { useContext } from \"use-context-selector\";\nimport { ZodEffects, ZodObject } from \"zod\";\nimport { ZodResolverContext } from \"./context\";\nimport { parseSchema } from \"./funcs/schema-parser\";\n\nexport const useSchema = () =>\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 = useSchema();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n","import { useInputMapping } from \"@form-instant/react-input-mapping\";\nimport { 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 InputMapping = useInputMapping();\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 const Element = InputMapping.get(props.type)!;\n\n const { key, ...prop } = props;\n\n return <Element {...prop} key={`${key}-${id}`} />;\n })}\n </>\n );\n};\n","\"use client\";\nimport { FC, ReactNode } from \"react\";\nimport { ZodResolverContext } from \"./context\";\nimport { zodResolverProps } from \"./type\";\nexport const FormInstantProvider: FC<{ schema: zodResolverProps; children: ReactNode }> = ({\n children,\n schema,\n}) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","undefined","FIELD_CONFIG_SYMBOL","Symbol","createZodSchemaFieldConfig","config","refinementFunction","getFieldConfigInZodStack","typedSchema","typeName","effect","refinement","inferFieldType","fieldType","type","zodToInputType","Map","match","get","parseField","key","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldConfig","_objectWithoutPropertiesLoose","_excluded","options","values","optionValues","Array","isArray","Object","entries","map","value","subSchema","ZodObject","shape","_ref","field","ZodArray","resp","required","isOptional","description","parseSchema","S","objectSchema","fields","fromEntries","_ref2","useSchema","useContext","useFields","_parseSchema","FormInstantElement","name","InputMapping","useInputMapping","inputs","id","useId","_jsx","props","Element","prop","_createElement","_extends","FormInstantProvider","children","Provider"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"react-resolver-zod.cjs.development.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 } 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 { RefinementEffect, z } from \"zod\";\nimport { FieldConfig, SuperRefineFunction } from \"./types\";\nexport const FIELD_CONFIG_SYMBOL = Symbol(\"GetFieldConfig\");\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 const typedSchema = schema as unknown as z.ZodEffects<z.ZodNumber | z.ZodString>;\n\n if (typedSchema._def.typeName === \"ZodEffects\") {\n const effect = typedSchema._def.effect as RefinementEffect<any>;\n const refinementFunction = effect.refinement;\n\n if (FIELD_CONFIG_SYMBOL in refinementFunction) {\n return refinementFunction[FIELD_CONFIG_SYMBOL] as FieldConfig;\n }\n }\n\n if (\"innerType\" in typedSchema._def) {\n return getFieldConfigInZodStack(typedSchema._def.innerType as unknown as z.ZodAny);\n }\n if (\"schema\" in typedSchema._def) {\n return getFieldConfigInZodStack((typedSchema._def as any).schema as z.ZodAny);\n }\n\n return {};\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 { z } from \"zod\";\nimport { getDefaultValueInZodStack } from \"./default-values\";\nimport { getFieldConfigInZodStack } from \"./field-config\";\nimport { inferFieldType } from \"./field-type-inference\";\nimport { ParsedField, ParsedSchema, ZodObjectOrWrapped } from \"./types\";\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfig } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\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 let subSchema: ParsedField<any>[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny),\n );\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField(\"0\", baseSchema._def.type)];\n }\n\n const resp = {\n key,\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 fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [key, parseField(key, field as z.ZodTypeAny)]),\n );\n\n return { fields };\n};\n","import { useContext } from \"react\";\nimport { ZodEffects, ZodObject } from \"zod\";\nimport { ZodResolverContext } from \"./context\";\nimport { parseSchema } from \"./funcs/schema-parser\";\n\nexport const useSchema = () =>\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 = useSchema();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n","import { useInputMapping } from \"@form-instant/react-input-mapping\";\nimport { createElement, 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 InputMapping = useInputMapping();\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 const Element = InputMapping.get(props.type);\n\n const { key, ...prop } = props;\n\n if (!Element) return null;\n\n return createElement(Element, { ...prop, key: `${key}-${id}` });\n })}\n </>\n );\n};\n","\"use client\";\nimport { FC, ReactNode } from \"react\";\nimport { ZodResolverContext } from \"./context\";\nimport { zodResolverProps } from \"./type\";\nexport const FormInstantProvider: FC<{ schema: zodResolverProps; children: ReactNode }> = ({\n children,\n schema,\n}) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","undefined","FIELD_CONFIG_SYMBOL","Symbol","createZodSchemaFieldConfig","config","refinementFunction","getFieldConfigInZodStack","typedSchema","typeName","effect","refinement","inferFieldType","fieldType","type","zodToInputType","Map","match","get","parseField","key","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldConfig","_objectWithoutPropertiesLoose","_excluded","options","values","optionValues","Array","isArray","Object","entries","map","value","subSchema","ZodObject","shape","_ref","field","ZodArray","resp","required","isOptional","description","parseSchema","S","objectSchema","fields","fromEntries","_ref2","useSchema","useContext","useFields","_parseSchema","FormInstantElement","name","InputMapping","useInputMapping","inputs","id","useId","_jsx","props","Element","prop","createElement","_extends","FormInstantProvider","children","Provider"],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),n=require("
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),n=require("@form-instant/react-input-mapping"),r=require("react"),t=require("zod");function i(){return i=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},i.apply(null,arguments)}function a(e,n){if(null==e)return{};var r={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(n.includes(t))continue;r[t]=e[t]}return r}var o=r.createContext({});function u(e){return e instanceof t.z.ZodDefault?e._def.defaultValue():e instanceof t.z.ZodEffects?u(e.innerType()):void 0}var f=Symbol("GetFieldConfig");function c(e){var n=e;if("ZodEffects"===n._def.typeName){var r=n._def.effect.refinement;if(f in r)return r[f]}return"innerType"in n._def?c(n._def.innerType):"schema"in n._def?c(n._def.schema):{}}var s=["fieldType"];function d(e,n){var r=l(n),i=c(n),o=i.fieldType,f=a(i,s),p=function(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"}(r,o),m=u(n),v=r._def.values,y=[];v&&(y=Array.isArray(v)?v.map((function(e){return[e,e]})):Object.entries(v));var h=[];return r instanceof t.z.ZodObject&&(h=Object.entries(r.shape).map((function(e){return d(e[0],e[1])}))),r instanceof t.z.ZodArray&&(h=[d("0",r._def.type)]),{key:e,type:p,required:!n.isOptional(),default:m,fieldConfig:f,options:y,schema:h,description:r.description}}function l(e){return"innerType"in e._def?l(e._def.innerType):"schema"in e._def?l(e._def.schema):e}var p=function(){return r.useContext(o)},m=function(e){var n,r,i=(r=(n=p())instanceof t.z.ZodEffects?n.innerType():n,{fields:Object.fromEntries(Object.entries(r.shape).map((function(e){var n=e[0];return[n,d(n,e[1])]})))});return i.fields[e]},v=["key"];exports.FormInstantElement=function(t){var o=t.name,u=n.useInputMapping(),f=m(o),c=Object.values(f.schema),s=r.useId();return e.jsx(e.Fragment,{children:c.map((function(e){var n=u.get(e.type),t=e.key,o=a(e,v);return n?r.createElement(n,i({},o,{key:t+"-"+s})):null}))})},exports.FormInstantProvider=function(n){return e.jsx(o.Provider,{value:n.schema,children:n.children})},exports.createZodSchemaFieldConfig=function(){return function(e){var n=function(){};return n[f]=e,n}},exports.useFields=m,exports.useSchema=p;
|
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/element.tsx","../src/provider.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 { RefinementEffect, z } from \"zod\";\nimport { FieldConfig, SuperRefineFunction } from \"./types\";\nexport const FIELD_CONFIG_SYMBOL = Symbol(\"GetFieldConfig\");\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 const typedSchema = schema as unknown as z.ZodEffects<z.ZodNumber | z.ZodString>;\n\n if (typedSchema._def.typeName === \"ZodEffects\") {\n const effect = typedSchema._def.effect as RefinementEffect<any>;\n const refinementFunction = effect.refinement;\n\n if (FIELD_CONFIG_SYMBOL in refinementFunction) {\n return refinementFunction[FIELD_CONFIG_SYMBOL] as FieldConfig;\n }\n }\n\n if (\"innerType\" in typedSchema._def) {\n return getFieldConfigInZodStack(typedSchema._def.innerType as unknown as z.ZodAny);\n }\n if (\"schema\" in typedSchema._def) {\n return getFieldConfigInZodStack((typedSchema._def as any).schema as z.ZodAny);\n }\n\n return {};\n}\n","import { z } from \"zod\";\nimport { getDefaultValueInZodStack } from \"./default-values\";\nimport { getFieldConfigInZodStack } from \"./field-config\";\nimport { inferFieldType } from \"./field-type-inference\";\nimport { ParsedField, ParsedSchema, ZodObjectOrWrapped } from \"./types\";\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfig } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\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 let subSchema: ParsedField<any>[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny),\n );\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField(\"0\", baseSchema._def.type)];\n }\n\n const resp = {\n key,\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 fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [key, parseField(key, field as z.ZodTypeAny)]),\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 { useContext } from \"use-context-selector\";\nimport { ZodEffects, ZodObject } from \"zod\";\nimport { ZodResolverContext } from \"./context\";\nimport { parseSchema } from \"./funcs/schema-parser\";\n\nexport const useSchema = () =>\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 = useSchema();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n","import { useInputMapping } from \"@form-instant/react-input-mapping\";\nimport { 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 InputMapping = useInputMapping();\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 const Element = InputMapping.get(props.type)!;\n\n const { key, ...prop } = props;\n\n return <Element {...prop} key={`${key}-${id}`} />;\n })}\n </>\n );\n};\n","\"use client\";\nimport { FC, ReactNode } from \"react\";\nimport { ZodResolverContext } from \"./context\";\nimport { zodResolverProps } from \"./type\";\nexport const FormInstantProvider: FC<{ schema: zodResolverProps; children: ReactNode }> = ({\n children,\n schema,\n}) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","FIELD_CONFIG_SYMBOL","Symbol","getFieldConfigInZodStack","typedSchema","typeName","refinementFunction","effect","refinement","parseField","key","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldType","fieldConfig","_objectWithoutPropertiesLoose","_excluded","type","Map","get","inferFieldType","options","values","optionValues","Array","isArray","map","value","Object","entries","subSchema","ZodObject","shape","_ref","ZodArray","required","isOptional","default","description","useSchema","useContext","useFields","S","objectSchema","_parseSchema","fields","fromEntries","_ref2","name","InputMapping","useInputMapping","field","inputs","id","useId","_jsx","props","Element","prop","_createElement","createElement","_extends","jsx","Provider","children","config"],"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/schema-parser.ts","../src/funcs/field-type-inference.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 } 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 { RefinementEffect, z } from \"zod\";\nimport { FieldConfig, SuperRefineFunction } from \"./types\";\nexport const FIELD_CONFIG_SYMBOL = Symbol(\"GetFieldConfig\");\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 const typedSchema = schema as unknown as z.ZodEffects<z.ZodNumber | z.ZodString>;\n\n if (typedSchema._def.typeName === \"ZodEffects\") {\n const effect = typedSchema._def.effect as RefinementEffect<any>;\n const refinementFunction = effect.refinement;\n\n if (FIELD_CONFIG_SYMBOL in refinementFunction) {\n return refinementFunction[FIELD_CONFIG_SYMBOL] as FieldConfig;\n }\n }\n\n if (\"innerType\" in typedSchema._def) {\n return getFieldConfigInZodStack(typedSchema._def.innerType as unknown as z.ZodAny);\n }\n if (\"schema\" in typedSchema._def) {\n return getFieldConfigInZodStack((typedSchema._def as any).schema as z.ZodAny);\n }\n\n return {};\n}\n","import { z } from \"zod\";\nimport { getDefaultValueInZodStack } from \"./default-values\";\nimport { getFieldConfigInZodStack } from \"./field-config\";\nimport { inferFieldType } from \"./field-type-inference\";\nimport { ParsedField, ParsedSchema, ZodObjectOrWrapped } from \"./types\";\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfig } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\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 let subSchema: ParsedField<any>[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny),\n );\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField(\"0\", baseSchema._def.type)];\n }\n\n const resp = {\n key,\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 fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [key, parseField(key, field as z.ZodTypeAny)]),\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 { useContext } from \"react\";\nimport { ZodEffects, ZodObject } from \"zod\";\nimport { ZodResolverContext } from \"./context\";\nimport { parseSchema } from \"./funcs/schema-parser\";\n\nexport const useSchema = () =>\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 = useSchema();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n","import { useInputMapping } from \"@form-instant/react-input-mapping\";\nimport { createElement, 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 InputMapping = useInputMapping();\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 const Element = InputMapping.get(props.type);\n\n const { key, ...prop } = props;\n\n if (!Element) return null;\n\n return createElement(Element, { ...prop, key: `${key}-${id}` });\n })}\n </>\n );\n};\n","\"use client\";\nimport { FC, ReactNode } from \"react\";\nimport { ZodResolverContext } from \"./context\";\nimport { zodResolverProps } from \"./type\";\nexport const FormInstantProvider: FC<{ schema: zodResolverProps; children: ReactNode }> = ({\n children,\n schema,\n}) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","FIELD_CONFIG_SYMBOL","Symbol","getFieldConfigInZodStack","typedSchema","typeName","refinementFunction","effect","refinement","parseField","key","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldType","fieldConfig","_objectWithoutPropertiesLoose","_excluded","type","Map","get","inferFieldType","options","values","optionValues","Array","isArray","map","value","Object","entries","subSchema","ZodObject","shape","_ref","ZodArray","required","isOptional","default","description","useSchema","useContext","useFields","S","objectSchema","_parseSchema","fields","fromEntries","_ref2","name","InputMapping","useInputMapping","field","inputs","id","useId","_jsx","props","Element","prop","createElement","_extends","jsx","Provider","children","config"],"mappings":"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"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
2
|
-
import { useId, createElement } from 'react';
|
3
2
|
import { useInputMapping } from '@form-instant/react-input-mapping';
|
4
|
-
import { createContext, useContext } from '
|
3
|
+
import { createContext, useContext, useId, createElement } from 'react';
|
5
4
|
import { z } from 'zod';
|
6
5
|
|
7
6
|
function _extends() {
|
@@ -162,6 +161,7 @@ var FormInstantElement = function FormInstantElement(_ref) {
|
|
162
161
|
var Element = InputMapping.get(props.type);
|
163
162
|
var key = props.key,
|
164
163
|
prop = _objectWithoutPropertiesLoose(props, _excluded);
|
164
|
+
if (!Element) return null;
|
165
165
|
return createElement(Element, _extends({}, prop, {
|
166
166
|
key: key + "-" + id
|
167
167
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"react-resolver-zod.esm.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 \"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 { RefinementEffect, z } from \"zod\";\nimport { FieldConfig, SuperRefineFunction } from \"./types\";\nexport const FIELD_CONFIG_SYMBOL = Symbol(\"GetFieldConfig\");\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 const typedSchema = schema as unknown as z.ZodEffects<z.ZodNumber | z.ZodString>;\n\n if (typedSchema._def.typeName === \"ZodEffects\") {\n const effect = typedSchema._def.effect as RefinementEffect<any>;\n const refinementFunction = effect.refinement;\n\n if (FIELD_CONFIG_SYMBOL in refinementFunction) {\n return refinementFunction[FIELD_CONFIG_SYMBOL] as FieldConfig;\n }\n }\n\n if (\"innerType\" in typedSchema._def) {\n return getFieldConfigInZodStack(typedSchema._def.innerType as unknown as z.ZodAny);\n }\n if (\"schema\" in typedSchema._def) {\n return getFieldConfigInZodStack((typedSchema._def as any).schema as z.ZodAny);\n }\n\n return {};\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 { z } from \"zod\";\nimport { getDefaultValueInZodStack } from \"./default-values\";\nimport { getFieldConfigInZodStack } from \"./field-config\";\nimport { inferFieldType } from \"./field-type-inference\";\nimport { ParsedField, ParsedSchema, ZodObjectOrWrapped } from \"./types\";\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfig } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\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 let subSchema: ParsedField<any>[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny),\n );\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField(\"0\", baseSchema._def.type)];\n }\n\n const resp = {\n key,\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 fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [key, parseField(key, field as z.ZodTypeAny)]),\n );\n\n return { fields };\n};\n","import { useContext } from \"use-context-selector\";\nimport { ZodEffects, ZodObject } from \"zod\";\nimport { ZodResolverContext } from \"./context\";\nimport { parseSchema } from \"./funcs/schema-parser\";\n\nexport const useSchema = () =>\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 = useSchema();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n","import { useInputMapping } from \"@form-instant/react-input-mapping\";\nimport { 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 InputMapping = useInputMapping();\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 const Element = InputMapping.get(props.type)!;\n\n const { key, ...prop } = props;\n\n return <Element {...prop} key={`${key}-${id}`} />;\n })}\n </>\n );\n};\n","\"use client\";\nimport { FC, ReactNode } from \"react\";\nimport { ZodResolverContext } from \"./context\";\nimport { zodResolverProps } from \"./type\";\nexport const FormInstantProvider: FC<{ schema: zodResolverProps; children: ReactNode }> = ({\n children,\n schema,\n}) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","undefined","FIELD_CONFIG_SYMBOL","Symbol","createZodSchemaFieldConfig","config","refinementFunction","getFieldConfigInZodStack","typedSchema","typeName","effect","refinement","inferFieldType","fieldType","type","zodToInputType","Map","match","get","parseField","key","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldConfig","_objectWithoutPropertiesLoose","_excluded","options","values","optionValues","Array","isArray","Object","entries","map","value","subSchema","ZodObject","shape","_ref","field","ZodArray","resp","required","isOptional","description","parseSchema","S","objectSchema","fields","fromEntries","_ref2","useSchema","useContext","useFields","_parseSchema","FormInstantElement","name","InputMapping","useInputMapping","inputs","id","useId","_jsx","props","Element","prop","_createElement","_extends","FormInstantProvider","children","Provider"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"react-resolver-zod.esm.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 } 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 { RefinementEffect, z } from \"zod\";\nimport { FieldConfig, SuperRefineFunction } from \"./types\";\nexport const FIELD_CONFIG_SYMBOL = Symbol(\"GetFieldConfig\");\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 const typedSchema = schema as unknown as z.ZodEffects<z.ZodNumber | z.ZodString>;\n\n if (typedSchema._def.typeName === \"ZodEffects\") {\n const effect = typedSchema._def.effect as RefinementEffect<any>;\n const refinementFunction = effect.refinement;\n\n if (FIELD_CONFIG_SYMBOL in refinementFunction) {\n return refinementFunction[FIELD_CONFIG_SYMBOL] as FieldConfig;\n }\n }\n\n if (\"innerType\" in typedSchema._def) {\n return getFieldConfigInZodStack(typedSchema._def.innerType as unknown as z.ZodAny);\n }\n if (\"schema\" in typedSchema._def) {\n return getFieldConfigInZodStack((typedSchema._def as any).schema as z.ZodAny);\n }\n\n return {};\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 { z } from \"zod\";\nimport { getDefaultValueInZodStack } from \"./default-values\";\nimport { getFieldConfigInZodStack } from \"./field-config\";\nimport { inferFieldType } from \"./field-type-inference\";\nimport { ParsedField, ParsedSchema, ZodObjectOrWrapped } from \"./types\";\n\nfunction parseField(key: string, schema: z.ZodTypeAny): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfig } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\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 let subSchema: ParsedField<any>[] = [];\n if (baseSchema instanceof z.ZodObject) {\n subSchema = Object.entries(baseSchema.shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny),\n );\n }\n if (baseSchema instanceof z.ZodArray) {\n subSchema = [parseField(\"0\", baseSchema._def.type)];\n }\n\n const resp = {\n key,\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 fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [key, parseField(key, field as z.ZodTypeAny)]),\n );\n\n return { fields };\n};\n","import { useContext } from \"react\";\nimport { ZodEffects, ZodObject } from \"zod\";\nimport { ZodResolverContext } from \"./context\";\nimport { parseSchema } from \"./funcs/schema-parser\";\n\nexport const useSchema = () =>\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 = useSchema();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n","import { useInputMapping } from \"@form-instant/react-input-mapping\";\nimport { createElement, 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 InputMapping = useInputMapping();\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 const Element = InputMapping.get(props.type);\n\n const { key, ...prop } = props;\n\n if (!Element) return null;\n\n return createElement(Element, { ...prop, key: `${key}-${id}` });\n })}\n </>\n );\n};\n","\"use client\";\nimport { FC, ReactNode } from \"react\";\nimport { ZodResolverContext } from \"./context\";\nimport { zodResolverProps } from \"./type\";\nexport const FormInstantProvider: FC<{ schema: zodResolverProps; children: ReactNode }> = ({\n children,\n schema,\n}) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","undefined","FIELD_CONFIG_SYMBOL","Symbol","createZodSchemaFieldConfig","config","refinementFunction","getFieldConfigInZodStack","typedSchema","typeName","effect","refinement","inferFieldType","fieldType","type","zodToInputType","Map","match","get","parseField","key","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldConfig","_objectWithoutPropertiesLoose","_excluded","options","values","optionValues","Array","isArray","Object","entries","map","value","subSchema","ZodObject","shape","_ref","field","ZodArray","resp","required","isOptional","description","parseSchema","S","objectSchema","fields","fromEntries","_ref2","useSchema","useContext","useFields","_parseSchema","FormInstantElement","name","InputMapping","useInputMapping","inputs","id","useId","_jsx","props","Element","prop","createElement","_extends","FormInstantProvider","children","Provider"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/context.tsx
CHANGED
package/src/element.tsx
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { useInputMapping } from "@form-instant/react-input-mapping";
|
2
|
-
import { useId } from "react";
|
2
|
+
import { createElement, useId } from "react";
|
3
3
|
import { useFields } from "./useSchema";
|
4
4
|
|
5
5
|
export interface ElementProps<Schema extends Record<string, any>> {
|
@@ -17,11 +17,13 @@ export const FormInstantElement = <S extends Record<string, any>>({ name }: Elem
|
|
17
17
|
return (
|
18
18
|
<>
|
19
19
|
{inputs.map((props) => {
|
20
|
-
const Element = InputMapping.get(props.type)
|
20
|
+
const Element = InputMapping.get(props.type);
|
21
21
|
|
22
22
|
const { key, ...prop } = props;
|
23
23
|
|
24
|
-
|
24
|
+
if (!Element) return null;
|
25
|
+
|
26
|
+
return createElement(Element, { ...prop, key: `${key}-${id}` });
|
25
27
|
})}
|
26
28
|
</>
|
27
29
|
);
|
package/src/useSchema.tsx
CHANGED