@zod-to-form/codegen 0.9.1 → 0.10.0
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/config-template.d.ts +2 -1
- package/dist/config-template.d.ts.map +1 -1
- package/dist/config-template.js +25 -6
- package/dist/config-template.js.map +1 -1
- package/dist/field-templates.d.ts +1 -1
- package/dist/field-templates.d.ts.map +1 -1
- package/dist/field-templates.js +13 -15
- package/dist/field-templates.js.map +1 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +62 -27
- package/dist/generate.js.map +1 -1
- package/dist/templates.d.ts +12 -1
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +129 -43
- package/dist/templates.js.map +1 -1
- package/package.json +2 -2
|
@@ -14,9 +14,10 @@ export type ConfigTemplateOptions = {
|
|
|
14
14
|
schemaExports?: string[];
|
|
15
15
|
/** Preset name: 'shadcn' | 'html' */
|
|
16
16
|
preset?: 'shadcn' | 'html';
|
|
17
|
-
/** Component overrides (name → { controlled?: boolean }) */
|
|
17
|
+
/** Component overrides (name → { controlled?: boolean; props?: ... }) */
|
|
18
18
|
overrides?: Record<string, {
|
|
19
19
|
controlled?: boolean;
|
|
20
|
+
props?: Record<string, string | number | boolean | null>;
|
|
20
21
|
}>;
|
|
21
22
|
/** Defaults block */
|
|
22
23
|
defaults?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-template.d.ts","sourceRoot":"","sources":["../src/config-template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAClC,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,qCAAqC;IACrC,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"config-template.d.ts","sourceRoot":"","sources":["../src/config-template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAClC,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,qCAAqC;IACrC,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAChB,MAAM,EACN;QACE,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;KAC1D,CACF,CAAC;IACF,qBAAqB;IACrB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;QAC9B,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SAAE,CAAC;KACtC,CAAC;IACF,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC;AAcF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA+HrE"}
|
package/dist/config-template.js
CHANGED
|
@@ -7,6 +7,12 @@ const PRESET_IMPORT_NAME = {
|
|
|
7
7
|
shadcn: 'SHADCN_OVERRIDES',
|
|
8
8
|
html: 'DEFAULT_OVERRIDES'
|
|
9
9
|
};
|
|
10
|
+
function renderLiteral(value) {
|
|
11
|
+
if (typeof value === 'string') {
|
|
12
|
+
return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
|
|
13
|
+
}
|
|
14
|
+
return JSON.stringify(value);
|
|
15
|
+
}
|
|
10
16
|
/**
|
|
11
17
|
* Generate a `z2f.config.ts` starter file as a source string.
|
|
12
18
|
* Produces a `defineConfig(...)` call with components, defaults, include/exclude,
|
|
@@ -53,19 +59,32 @@ export function buildConfigSource(opts) {
|
|
|
53
59
|
if (preset) {
|
|
54
60
|
lines.push(` preset: '${preset}',`);
|
|
55
61
|
}
|
|
56
|
-
// overrides
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
// overrides — serialize ALL entries (controlled and non-controlled).
|
|
63
|
+
// A non-controlled/empty entry emits `Name: {}` (use the named component from
|
|
64
|
+
// source for this field); a controlled entry emits `Name: { controlled: true }`.
|
|
65
|
+
// When present, `props` are serialized into `props: { ... }`.
|
|
66
|
+
// Dropping non-controlled entries previously caused fields without an override
|
|
67
|
+
// to regress to raw `<input>` on regeneration.
|
|
68
|
+
const overrideEntries = opts.overrides ? Object.entries(opts.overrides) : [];
|
|
60
69
|
if (presetImportName || overrideEntries.length > 0) {
|
|
61
70
|
lines.push(` overrides: {`);
|
|
62
71
|
if (presetImportName) {
|
|
63
72
|
const comma = overrideEntries.length > 0 ? ',' : '';
|
|
64
73
|
lines.push(` ...${presetImportName}${comma}`);
|
|
65
74
|
}
|
|
66
|
-
overrideEntries.forEach(([name], i) => {
|
|
75
|
+
overrideEntries.forEach(([name, v], i) => {
|
|
67
76
|
const comma = i < overrideEntries.length - 1 ? ',' : '';
|
|
68
|
-
|
|
77
|
+
const tokens = [];
|
|
78
|
+
if (v.controlled)
|
|
79
|
+
tokens.push('controlled: true');
|
|
80
|
+
if (v.props && Object.keys(v.props).length > 0) {
|
|
81
|
+
const renderedProps = Object.entries(v.props)
|
|
82
|
+
.map(([k, value]) => `${k}: ${renderLiteral(value)}`)
|
|
83
|
+
.join(', ');
|
|
84
|
+
tokens.push(`props: { ${renderedProps} }`);
|
|
85
|
+
}
|
|
86
|
+
const body = tokens.length > 0 ? `{ ${tokens.join(', ')} }` : '{}';
|
|
87
|
+
lines.push(` ${name}: ${body}${comma}`);
|
|
69
88
|
});
|
|
70
89
|
lines.push(` }`);
|
|
71
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-template.js","sourceRoot":"","sources":["../src/config-template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"config-template.js","sourceRoot":"","sources":["../src/config-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Preset field template source code, emitted as standalone files alongside generated forms.
|
|
3
3
|
* Each template is a React component implementing FieldTemplateProps.
|
|
4
4
|
*/
|
|
5
|
-
export declare const SHADCN_FIELD_TEMPLATE = "import type { ReactNode } from 'react';\nimport {\n
|
|
5
|
+
export declare const SHADCN_FIELD_TEMPLATE = "import type { ReactNode } from 'react';\nimport {\n Field,\n FieldDescription,\n FieldError,\n FieldLabel\n} from './ui/field';\n\nexport interface FieldTemplateProps {\n children: ReactNode;\n label: string;\n description?: string;\n helpText?: string;\n error?: string;\n name: string;\n required?: boolean;\n disabled?: boolean;\n deprecated?: boolean;\n}\n\nexport function FieldTemplate({\n children,\n label,\n description,\n helpText,\n error,\n name,\n deprecated\n}: FieldTemplateProps) {\n return (\n <Field>\n <FieldLabel htmlFor={name}>\n {deprecated ? <s>{label}</s> : label}\n {deprecated ? (\n <span aria-hidden=\"true\" title=\"Deprecated\"> \u26A0</span>\n ) : null}\n </FieldLabel>\n {children}\n {description ? <FieldDescription>{description}</FieldDescription> : null}\n {helpText ? (\n <p className=\"text-sm text-muted-foreground mt-1\">{helpText}</p>\n ) : null}\n {error ? <FieldError>{error}</FieldError> : null}\n </Field>\n );\n}\n";
|
|
6
6
|
export declare const HTML_FIELD_TEMPLATE = "import type { ReactNode } from 'react';\n\nexport interface FieldTemplateProps {\n children: ReactNode;\n label: string;\n description?: string;\n helpText?: string;\n error?: string;\n name: string;\n required?: boolean;\n disabled?: boolean;\n deprecated?: boolean;\n}\n\nexport function FieldTemplate({\n children,\n label,\n description,\n helpText,\n error,\n name,\n deprecated\n}: FieldTemplateProps) {\n return (\n <div>\n <label htmlFor={name}>\n {deprecated ? <s>{label}</s> : label}\n {deprecated ? (\n <span aria-hidden=\"true\" title=\"Deprecated\"> \u26A0</span>\n ) : null}\n </label>\n {children}\n {description ? <p>{description}</p> : null}\n {helpText ? (\n <p style={{ fontSize: '0.875rem', color: '#6b7280', marginTop: '0.25rem' }}>\n {helpText}\n </p>\n ) : null}\n {error ? <p role=\"alert\">{error}</p> : null}\n </div>\n );\n}\n";
|
|
7
7
|
/** Components that each preset's field template imports from the component source */
|
|
8
8
|
export declare const PRESET_TEMPLATE_IMPORTS: Record<string, string[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-templates.d.ts","sourceRoot":"","sources":["../src/field-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"field-templates.d.ts","sourceRoot":"","sources":["../src/field-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,qBAAqB,uiCA8CjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,08BA0C/B,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAG5D,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAExE"}
|
package/dist/field-templates.js
CHANGED
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export const SHADCN_FIELD_TEMPLATE = `import type { ReactNode } from 'react';
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
FormMessage
|
|
13
|
-
} from './ui/form';
|
|
7
|
+
Field,
|
|
8
|
+
FieldDescription,
|
|
9
|
+
FieldError,
|
|
10
|
+
FieldLabel
|
|
11
|
+
} from './ui/field';
|
|
14
12
|
|
|
15
13
|
export interface FieldTemplateProps {
|
|
16
14
|
children: ReactNode;
|
|
@@ -34,20 +32,20 @@ export function FieldTemplate({
|
|
|
34
32
|
deprecated
|
|
35
33
|
}: FieldTemplateProps) {
|
|
36
34
|
return (
|
|
37
|
-
<
|
|
38
|
-
<
|
|
35
|
+
<Field>
|
|
36
|
+
<FieldLabel htmlFor={name}>
|
|
39
37
|
{deprecated ? <s>{label}</s> : label}
|
|
40
38
|
{deprecated ? (
|
|
41
39
|
<span aria-hidden="true" title="Deprecated"> ⚠</span>
|
|
42
40
|
) : null}
|
|
43
|
-
</
|
|
44
|
-
|
|
45
|
-
{description ? <
|
|
41
|
+
</FieldLabel>
|
|
42
|
+
{children}
|
|
43
|
+
{description ? <FieldDescription>{description}</FieldDescription> : null}
|
|
46
44
|
{helpText ? (
|
|
47
45
|
<p className="text-sm text-muted-foreground mt-1">{helpText}</p>
|
|
48
46
|
) : null}
|
|
49
|
-
{error ? <
|
|
50
|
-
</
|
|
47
|
+
{error ? <FieldError>{error}</FieldError> : null}
|
|
48
|
+
</Field>
|
|
51
49
|
);
|
|
52
50
|
}
|
|
53
51
|
`;
|
|
@@ -96,7 +94,7 @@ export function FieldTemplate({
|
|
|
96
94
|
`;
|
|
97
95
|
/** Components that each preset's field template imports from the component source */
|
|
98
96
|
export const PRESET_TEMPLATE_IMPORTS = {
|
|
99
|
-
shadcn: ['
|
|
97
|
+
shadcn: ['Field', 'FieldDescription', 'FieldError', 'FieldLabel'],
|
|
100
98
|
html: []
|
|
101
99
|
};
|
|
102
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-templates.js","sourceRoot":"","sources":["../src/field-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG
|
|
1
|
+
{"version":3,"file":"field-templates.js","sourceRoot":"","sources":["../src/field-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CpC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ClC,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC/D,MAAM,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,CAAC;IACjE,IAAI,EAAE,EAAE;CACT,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAyB;IAC9D,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC;AAC3E,CAAC"}
|
package/dist/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAQlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAaxF,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAmLvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7E,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,GACvD;IACD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;CAC1C,CAkCA;AAuaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAwNxF"}
|
package/dist/generate.js
CHANGED
|
@@ -1,25 +1,40 @@
|
|
|
1
|
-
import { getEmptyDefault } from '@zod-to-form/core';
|
|
2
|
-
import { getFileHeader, renderField, registerPathExpr, renderOptimizedRegister } from './templates.js';
|
|
1
|
+
import { getEmptyDefault, resolveBaseProps, resolveNativeAttrs, resolveOptionsProps, RHF_FIELD_EXPRESSIONS } from '@zod-to-form/core';
|
|
2
|
+
import { getFileHeader, renderField, registerPathExpr, renderOptimizedRegister, buildRegisterExpr } from './templates.js';
|
|
3
3
|
import { PRESET_TEMPLATE_IMPORTS } from './field-templates.js';
|
|
4
4
|
function renderLiteralProp(value) {
|
|
5
5
|
if (typeof value === 'string') {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
// Use the safe `{"..."}` JSX brace form when the value contains a double-quote
|
|
7
|
+
// so the output is always valid JSX regardless of embedded quotes.
|
|
8
|
+
// For quote-free values, emit the simpler `"value"` attribute form so that
|
|
9
|
+
// existing output (e.g. type="email") is unchanged.
|
|
10
|
+
if (value.includes('"')) {
|
|
11
|
+
return `{${JSON.stringify(value)}}`;
|
|
12
|
+
}
|
|
13
|
+
return `"${value}"`;
|
|
9
14
|
}
|
|
10
15
|
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
11
16
|
return `{${String(value)}}`;
|
|
12
17
|
}
|
|
13
18
|
return undefined;
|
|
14
19
|
}
|
|
15
|
-
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Serialize a `Record<string, unknown>` from a core resolver into a run of JSX
|
|
22
|
+
* attribute strings, reusing `renderLiteralProp` for each value.
|
|
23
|
+
*
|
|
24
|
+
* - `true` boolean → shorthand attr (e.g. `required` not `required={true}`)
|
|
25
|
+
* - Other scalars → `key="string"` / `key={number}`
|
|
26
|
+
* - Unsupported types (objects, arrays) are silently skipped (same as renderOverrideProps)
|
|
27
|
+
*/
|
|
28
|
+
function renderResolverProps(record) {
|
|
29
|
+
return Object.entries(record)
|
|
30
|
+
.map(([key, value]) => {
|
|
31
|
+
if (value === true)
|
|
32
|
+
return ` ${key}`;
|
|
33
|
+
const rendered = renderLiteralProp(value);
|
|
34
|
+
return rendered ? ` ${key}=${rendered}` : '';
|
|
35
|
+
})
|
|
36
|
+
.join('');
|
|
37
|
+
}
|
|
23
38
|
const BUILTIN_COMPONENT_NAMES = new Set([
|
|
24
39
|
'Input',
|
|
25
40
|
'Checkbox',
|
|
@@ -88,20 +103,21 @@ function renderFieldContainer(field, content, indent, preset = 'html') {
|
|
|
88
103
|
const labelContent = field.deprecated
|
|
89
104
|
? `<s>${field.label}</s> <span title="Deprecated">⚠</span>`
|
|
90
105
|
: field.label;
|
|
106
|
+
const fieldNameExpr = field.key.includes('${') ? `\`${field.key}\`` : `"${field.key}"`;
|
|
91
107
|
if (preset === 'shadcn') {
|
|
92
108
|
const lines = [
|
|
93
|
-
`${indent}<
|
|
94
|
-
`${indent} <
|
|
95
|
-
`${indent}
|
|
109
|
+
`${indent}<Field>`,
|
|
110
|
+
`${indent} <FieldLabel htmlFor="${field.key}">${labelContent}</FieldLabel>`,
|
|
111
|
+
`${indent} ${content}`
|
|
96
112
|
];
|
|
97
113
|
if (field.description) {
|
|
98
|
-
lines.push(`${indent} <
|
|
114
|
+
lines.push(`${indent} <FieldDescription>${field.description}</FieldDescription>`);
|
|
99
115
|
}
|
|
100
116
|
if (field.helpText) {
|
|
101
117
|
lines.push(`${indent} <p className="text-sm text-muted-foreground mt-1">${field.helpText}</p>`);
|
|
102
118
|
}
|
|
103
|
-
lines.push(`${indent} <
|
|
104
|
-
lines.push(`${indent}</
|
|
119
|
+
lines.push(`${indent} <FieldError>{form.getFieldState(${fieldNameExpr}, form.formState).error?.message}</FieldError>`);
|
|
120
|
+
lines.push(`${indent}</Field>`);
|
|
105
121
|
return lines.join('\n');
|
|
106
122
|
}
|
|
107
123
|
const lines = [
|
|
@@ -306,7 +322,7 @@ function renderArrayBlock(field, componentConfig, indent, optimized = false) {
|
|
|
306
322
|
itemJsx = renderControlledComponent(indexedItemField.key, mappedItem.componentName, propMap, overrideProps, renderFieldPropsSpread(indexedItemField.key));
|
|
307
323
|
}
|
|
308
324
|
else if (mappedItem.source === 'fields' && mappedItem.componentName) {
|
|
309
|
-
itemJsx = `<${mappedItem.componentName} {...${
|
|
325
|
+
itemJsx = `<${mappedItem.componentName} {...${buildRegisterExpr(indexedItemField)}}${renderOverrideProps(mappedItem.override?.props)}${renderFieldPropsSpread(indexedItemField.key)} />`;
|
|
310
326
|
}
|
|
311
327
|
else {
|
|
312
328
|
itemJsx = renderFieldBlockWithConfig(indexedItemField, componentConfig, `${indent} `, 'html', optimized);
|
|
@@ -403,7 +419,16 @@ function renderMappedComponent(field, componentName, componentOverride, override
|
|
|
403
419
|
const propMap = resolvePropMap(componentOverride, override);
|
|
404
420
|
return renderControlledComponent(field.key, componentName, propMap, overrideProps, fieldPropsSpread);
|
|
405
421
|
}
|
|
406
|
-
|
|
422
|
+
// Compose resolver-derived props: base props (id handled separately for dynamic paths),
|
|
423
|
+
// native attrs (type, etc.), and options props — in that order before register/fieldProps
|
|
424
|
+
// so that consumer overrides (last-wins) take precedence.
|
|
425
|
+
const baseProps = resolveBaseProps(field);
|
|
426
|
+
// Emit id via idExpr (dynamic-path safe); emit remaining base props (required/readOnly/disabled)
|
|
427
|
+
const { id: _id, ...restBaseProps } = baseProps;
|
|
428
|
+
const baseAttrs = renderResolverProps(restBaseProps);
|
|
429
|
+
const nativeAttrs = renderResolverProps(resolveNativeAttrs(field));
|
|
430
|
+
const optionsAttrs = renderResolverProps(resolveOptionsProps(field));
|
|
431
|
+
return `<${componentName} id=${idExpr}${baseAttrs}${nativeAttrs}${optionsAttrs} {...${buildRegisterExpr(field)}}${overrideProps}${fieldPropsSpread} />`;
|
|
407
432
|
}
|
|
408
433
|
function renderFieldBlockWithConfig(field, componentConfig, indent = ' ', preset = 'html', optimized = false) {
|
|
409
434
|
const mapping = getMappedFieldComponent(field, componentConfig);
|
|
@@ -550,10 +575,23 @@ export function generateFormComponent(fields, config) {
|
|
|
550
575
|
const preset = config.componentConfig?.components?.preset ?? (config.ui === 'shadcn' ? 'shadcn' : 'html');
|
|
551
576
|
const mappedComponents = collectMappedComponentNames(fields, config.componentConfig);
|
|
552
577
|
const importNames = new Set(mappedComponents);
|
|
553
|
-
//
|
|
578
|
+
// Generate body first so we can filter template imports to only those actually referenced.
|
|
579
|
+
// This avoids importing Field* primitives (e.g. FieldDescription) that are
|
|
580
|
+
// conditionally emitted and absent when no field has a description.
|
|
581
|
+
const body = fields
|
|
582
|
+
.map((field) => renderFieldBlockWithConfig(field, config.componentConfig, ' ', preset, optimized))
|
|
583
|
+
.join('\n');
|
|
584
|
+
// Add form primitive imports required by the preset's field template — but only
|
|
585
|
+
// those that are actually referenced in the generated body (as JSX tags or identifiers).
|
|
554
586
|
const templateImports = PRESET_TEMPLATE_IMPORTS[preset] ?? [];
|
|
555
587
|
for (const name of templateImports) {
|
|
556
|
-
|
|
588
|
+
// A name is referenced if it appears as a JSX opening/closing tag or as an identifier
|
|
589
|
+
// followed by a word boundary (covers both <FieldX> tags and non-JSX references).
|
|
590
|
+
const tagPattern = new RegExp(`</?${name}[\\s/>]`);
|
|
591
|
+
const idPattern = new RegExp(`\\b${name}\\b`);
|
|
592
|
+
if (tagPattern.test(body) || idPattern.test(body)) {
|
|
593
|
+
importNames.add(name);
|
|
594
|
+
}
|
|
557
595
|
}
|
|
558
596
|
const componentImportLine = config.componentConfig && importNames.size > 0
|
|
559
597
|
? `import { ${Array.from(importNames).sort().join(', ')} } from '${config.componentConfig.components.source}';`
|
|
@@ -565,7 +603,7 @@ export function generateFormComponent(fields, config) {
|
|
|
565
603
|
includeZod: hasAnyZodSchemaOrSchemaLite(fields, config.schemaLite)
|
|
566
604
|
}
|
|
567
605
|
: undefined;
|
|
568
|
-
const header = getFileHeader(schemaImportPath, config.exportName, hasArrays, config.mode, componentImportLine, { hasControlled, formProvider: useFormProvider, preset }, optimizedOptions);
|
|
606
|
+
const header = getFileHeader(schemaImportPath, config.exportName, hasArrays, config.mode, componentImportLine, { hasControlled, formProvider: useFormProvider, preset }, optimizedOptions, config.typesModule);
|
|
569
607
|
// When optimized with schemaLite, the form imports from the .lite.ts file
|
|
570
608
|
const hasSchemaLite = optimized && config.schemaLite != null;
|
|
571
609
|
const schemaLiteImport = hasSchemaLite
|
|
@@ -573,9 +611,6 @@ export function generateFormComponent(fields, config) {
|
|
|
573
611
|
: undefined;
|
|
574
612
|
// Generate hoisted validators for optimized mode
|
|
575
613
|
const hoistedValidators = optimized ? generateHoistedValidators(fields, config.exportName) : [];
|
|
576
|
-
const body = fields
|
|
577
|
-
.map((field) => renderFieldBlockWithConfig(field, config.componentConfig, ' ', preset, optimized))
|
|
578
|
-
.join('\n');
|
|
579
614
|
const arrayHooks = arrayFields
|
|
580
615
|
.map((f) => {
|
|
581
616
|
const varName = toVarName(f.key);
|
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/templates.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export declare function getFileHeader(schemaImportPath: string, exportName: stri
|
|
|
34
34
|
}, optimized?: {
|
|
35
35
|
includeZodResolver: boolean;
|
|
36
36
|
includeZod: boolean;
|
|
37
|
-
}): string;
|
|
37
|
+
}, typesModule?: string): string;
|
|
38
38
|
/**
|
|
39
39
|
* Produce the correct `register(...)` call expression for a field path.
|
|
40
40
|
* Uses template-literal syntax when the path contains `${` (e.g. array item paths),
|
|
@@ -49,6 +49,17 @@ export declare function getFileHeader(schemaImportPath: string, exportName: stri
|
|
|
49
49
|
* @category Templates
|
|
50
50
|
*/
|
|
51
51
|
export declare function registerPathExpr(path: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Build a complete `register(path, { coercion })` expression string for a field.
|
|
54
|
+
*
|
|
55
|
+
* When the field has no coercion hints the result is identical to `registerPathExpr(path)`.
|
|
56
|
+
* Extra option parts (validation rules) may be merged in by passing `extraParts`.
|
|
57
|
+
*
|
|
58
|
+
* Exported so `generate.ts` can use it for custom mapped components.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
export declare function buildRegisterExpr(field: FormField, extraParts?: string[]): string;
|
|
52
63
|
export declare function renderOptimizedRegister(field: FormField, fieldKey: string): string;
|
|
53
64
|
/**
|
|
54
65
|
* Render a single `FormField` to its plain-HTML JSX string.
|
package/dist/templates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAwEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,aAAa,CAC3B,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,SAAS,UAAQ,EACjB,IAAI,GAAE,QAAQ,GAAG,WAAsB,EACvC,mBAAmB,CAAC,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;CAAE,EACzF,SAAS,CAAC,EAAE;IAAE,kBAAkB,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,EAChE,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAuCR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAiDD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAE,MAAM,EAAO,GAAG,MAAM,CAWrF;AAsDD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsElF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBtE"}
|
package/dist/templates.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getFieldRegisterHints } from '@zod-to-form/core';
|
|
1
2
|
// ─── Inlined type utility (zero-dep codegen) ─────────────────────────
|
|
2
3
|
//
|
|
3
4
|
// StripIndexSignature removes index signatures from a type while preserving
|
|
@@ -93,7 +94,7 @@ function normalizeFormValues(value: unknown): unknown {
|
|
|
93
94
|
*
|
|
94
95
|
* @category Templates
|
|
95
96
|
*/
|
|
96
|
-
export function getFileHeader(schemaImportPath, exportName, hasArrays = false, mode = 'submit', componentImportLine, options, optimized) {
|
|
97
|
+
export function getFileHeader(schemaImportPath, exportName, hasArrays = false, mode = 'submit', componentImportLine, options, optimized, typesModule) {
|
|
97
98
|
const rhfParts = ['useForm'];
|
|
98
99
|
if (hasArrays)
|
|
99
100
|
rhfParts.push('useFieldArray');
|
|
@@ -113,10 +114,10 @@ export function getFileHeader(schemaImportPath, exportName, hasArrays = false, m
|
|
|
113
114
|
...(includeZodResolver ? [`import { zodResolver } from '@hookform/resolvers/zod';`] : []),
|
|
114
115
|
...(includeZod ? [`import { z } from 'zod';`] : []),
|
|
115
116
|
...(componentImportLine ? [componentImportLine] : []),
|
|
117
|
+
...(typesModule ? [`import type { StripIndexSignature } from '${typesModule}';`] : []),
|
|
116
118
|
`import { ${exportName} } from '${schemaImportPath}';`,
|
|
117
119
|
``,
|
|
118
|
-
STRIP_INDEX_SIGNATURE_TYPE,
|
|
119
|
-
``,
|
|
120
|
+
...(typesModule ? [] : [STRIP_INDEX_SIGNATURE_TYPE, ``]),
|
|
120
121
|
// FormData: form values as handled by RHF (input side — pre-parse).
|
|
121
122
|
// FormOutput: parsed values passed to onSubmit (output side — post-transform).
|
|
122
123
|
// Zod defaults/transforms make input and output differ — RHF uses input.
|
|
@@ -148,82 +149,167 @@ export function getFileHeader(schemaImportPath, exportName, hasArrays = false, m
|
|
|
148
149
|
export function registerPathExpr(path) {
|
|
149
150
|
return path.includes('${') ? `register(\`${path}\`)` : `register('${path}')`;
|
|
150
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Build a register-options object literal string from a field's coercion hints.
|
|
154
|
+
*
|
|
155
|
+
* Returns the options parts that should appear inside `register(key, { ... })`.
|
|
156
|
+
* Only emits coercion options (`setValueAs`).
|
|
157
|
+
* Validation rules (nativeRules, validate) are handled separately by
|
|
158
|
+
* `renderOptimizedRegister` in the optimized path and are NOT included here,
|
|
159
|
+
* so the non-optimized path stays compatible with the existing zodResolver flow.
|
|
160
|
+
*
|
|
161
|
+
* Canonical `setValueAs` semantics (must match @zod-to-form/react exactly):
|
|
162
|
+
* - number: empty→undefined, filled→Number(v)
|
|
163
|
+
* - bigint: empty→undefined, filled→BigInt(v) (precision-safe; on parse error returns raw)
|
|
164
|
+
* - date: empty→undefined, filled→new Date(v)
|
|
165
|
+
* - file: FileList→File|undefined, else pass-through
|
|
166
|
+
*
|
|
167
|
+
* Returns an empty array when no coercion options apply (bare register).
|
|
168
|
+
*
|
|
169
|
+
* @internal
|
|
170
|
+
*/
|
|
171
|
+
function buildCoercionOptionParts(field) {
|
|
172
|
+
const hints = getFieldRegisterHints(field);
|
|
173
|
+
const parts = [];
|
|
174
|
+
if (hints.coerce === 'number') {
|
|
175
|
+
// P1 fix: empty→undefined (not NaN). Must match @zod-to-form/react exactly.
|
|
176
|
+
parts.push("setValueAs: (v: unknown) => (v === '' || v == null ? undefined : Number(v))");
|
|
177
|
+
}
|
|
178
|
+
else if (hints.coerce === 'bigint') {
|
|
179
|
+
// P2 fix: use BigInt() for precision above Number.MAX_SAFE_INTEGER.
|
|
180
|
+
parts.push("setValueAs: (v: unknown) => { if (v === '' || v == null) return undefined; try { return BigInt(v as never); } catch { return v; } }");
|
|
181
|
+
}
|
|
182
|
+
else if (hints.coerce === 'date') {
|
|
183
|
+
// empty→undefined, filled→Date object.
|
|
184
|
+
parts.push("setValueAs: (v: unknown) => (v === '' || v == null ? undefined : new Date(v as never))");
|
|
185
|
+
}
|
|
186
|
+
else if (hints.coerce === 'file') {
|
|
187
|
+
// Mirror the exact lambda that @zod-to-form/react uses at runtime so that
|
|
188
|
+
// generated forms and the runtime renderer behave identically.
|
|
189
|
+
parts.push('setValueAs: (value: unknown) => { if (value instanceof FileList) { return value.length > 0 ? value.item(0) : undefined; } return value; }');
|
|
190
|
+
}
|
|
191
|
+
return parts;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Build a complete `register(path, { coercion })` expression string for a field.
|
|
195
|
+
*
|
|
196
|
+
* When the field has no coercion hints the result is identical to `registerPathExpr(path)`.
|
|
197
|
+
* Extra option parts (validation rules) may be merged in by passing `extraParts`.
|
|
198
|
+
*
|
|
199
|
+
* Exported so `generate.ts` can use it for custom mapped components.
|
|
200
|
+
*
|
|
201
|
+
* @internal
|
|
202
|
+
*/
|
|
203
|
+
export function buildRegisterExpr(field, extraParts = []) {
|
|
204
|
+
const coercionParts = buildCoercionOptionParts(field);
|
|
205
|
+
const allParts = [...coercionParts, ...extraParts];
|
|
206
|
+
const path = field.key;
|
|
207
|
+
const pathToken = path.includes('${') ? `\`${path}\`` : `'${path}'`;
|
|
208
|
+
if (allParts.length === 0) {
|
|
209
|
+
return `register(${pathToken})`;
|
|
210
|
+
}
|
|
211
|
+
return `register(${pathToken}, { ${allParts.join(', ')} })`;
|
|
212
|
+
}
|
|
151
213
|
function disabledAttr(field) {
|
|
152
214
|
return field.disabled ? ' disabled' : '';
|
|
153
215
|
}
|
|
154
216
|
function renderInput(field, regExpr) {
|
|
155
217
|
const inputType = typeof field.props['type'] === 'string' ? field.props['type'] : 'text';
|
|
156
|
-
const reg = regExpr ??
|
|
218
|
+
const reg = regExpr ?? buildRegisterExpr(field);
|
|
157
219
|
return `<input id="${field.key}" type="${inputType}"${disabledAttr(field)} {...${reg}} />`;
|
|
158
220
|
}
|
|
159
221
|
function renderCheckbox(field, regExpr) {
|
|
222
|
+
// Checkbox/Switch fields are boolean — no numeric/date coercion applies.
|
|
160
223
|
const reg = regExpr ?? registerPathExpr(field.key);
|
|
161
224
|
return `<input id="${field.key}" type="checkbox"${disabledAttr(field)} {...${reg}} />`;
|
|
162
225
|
}
|
|
163
226
|
function renderDatePicker(field, regExpr) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
227
|
+
// DatePicker always renders <input type="date"> with the date setValueAs coercion.
|
|
228
|
+
// When a pre-built regExpr is passed (e.g. from renderOptimizedRegister) use it as-is.
|
|
229
|
+
if (regExpr) {
|
|
230
|
+
return `<input id="${field.key}" type="date"${disabledAttr(field)} {...${regExpr}} />`;
|
|
231
|
+
}
|
|
232
|
+
// Derive coercion parts from hints (coerce:'date' → setValueAs lambda).
|
|
233
|
+
// The date setValueAs is always required for DatePicker fields.
|
|
234
|
+
const coercionParts = buildCoercionOptionParts(field);
|
|
235
|
+
const DATE_SETVALUE_AS = "setValueAs: (v: unknown) => (v === '' || v == null ? undefined : new Date(v as never))";
|
|
236
|
+
if (!coercionParts.some((p) => p.startsWith('setValueAs'))) {
|
|
237
|
+
coercionParts.unshift(DATE_SETVALUE_AS);
|
|
238
|
+
}
|
|
239
|
+
const path = field.key;
|
|
240
|
+
const pathToken = path.includes('${') ? `\`${path}\`` : `'${path}'`;
|
|
241
|
+
const reg = `register(${pathToken}, { ${coercionParts.join(', ')} })`;
|
|
168
242
|
return `<input id="${field.key}" type="date"${disabledAttr(field)} {...${reg}} />`;
|
|
169
243
|
}
|
|
170
244
|
function renderFileInput(field, regExpr) {
|
|
171
|
-
|
|
245
|
+
// File fields carry setValueAs coercion (derived from zodType === 'file').
|
|
246
|
+
const reg = regExpr ?? buildRegisterExpr(field);
|
|
172
247
|
return `<input id="${field.key}" type="file"${disabledAttr(field)} {...${reg}} />`;
|
|
173
248
|
}
|
|
174
249
|
function renderSelect(field, regExpr) {
|
|
175
250
|
const options = (field.options ?? [])
|
|
176
251
|
.map((option) => `<option value="${String(option.value)}">${option.label}</option>`)
|
|
177
252
|
.join('');
|
|
178
|
-
|
|
253
|
+
// Select values are strings/enums — no coercion normally applies.
|
|
254
|
+
// buildRegisterExpr handles the no-op case gracefully (returns bare register).
|
|
255
|
+
const reg = regExpr ?? buildRegisterExpr(field);
|
|
179
256
|
return `<select id="${field.key}"${disabledAttr(field)} {...${reg}}>${options}</select>`;
|
|
180
257
|
}
|
|
181
258
|
export function renderOptimizedRegister(field, fieldKey) {
|
|
182
259
|
const mode = field.validation?.mode;
|
|
260
|
+
// Coercion options (valueAsNumber, valueAsDate, setValueAs) always come first
|
|
261
|
+
// so that RHF parses the value before running validation rules.
|
|
262
|
+
const coercionParts = buildCoercionOptionParts(field);
|
|
263
|
+
const pathToken = fieldKey.includes('${') ? `\`${fieldKey}\`` : `'${fieldKey}'`;
|
|
183
264
|
if (mode === 'native') {
|
|
184
265
|
const rules = field.validation?.rules;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
266
|
+
const validationParts = [];
|
|
267
|
+
if (rules && Object.keys(rules).length > 0) {
|
|
268
|
+
if (rules.required !== undefined) {
|
|
269
|
+
validationParts.push(`required: ${JSON.stringify(rules.required)}`);
|
|
270
|
+
}
|
|
271
|
+
if (rules.minLength !== undefined) {
|
|
272
|
+
validationParts.push(`minLength: { value: ${rules.minLength.value}, message: ${JSON.stringify(rules.minLength.message)} }`);
|
|
273
|
+
}
|
|
274
|
+
if (rules.maxLength !== undefined) {
|
|
275
|
+
validationParts.push(`maxLength: { value: ${rules.maxLength.value}, message: ${JSON.stringify(rules.maxLength.message)} }`);
|
|
276
|
+
}
|
|
277
|
+
if (rules.min !== undefined) {
|
|
278
|
+
validationParts.push(`min: { value: ${rules.min.value}, message: ${JSON.stringify(rules.min.message)} }`);
|
|
279
|
+
}
|
|
280
|
+
if (rules.max !== undefined) {
|
|
281
|
+
validationParts.push(`max: { value: ${rules.max.value}, message: ${JSON.stringify(rules.max.message)} }`);
|
|
282
|
+
}
|
|
283
|
+
if (rules.pattern !== undefined) {
|
|
284
|
+
validationParts.push(`pattern: { value: ${rules.pattern.value}, message: ${JSON.stringify(rules.pattern.message)} }`);
|
|
285
|
+
}
|
|
191
286
|
}
|
|
192
|
-
|
|
193
|
-
|
|
287
|
+
const allParts = [...coercionParts, ...validationParts];
|
|
288
|
+
if (allParts.length === 0) {
|
|
289
|
+
return `register(${pathToken})`;
|
|
194
290
|
}
|
|
195
|
-
|
|
196
|
-
parts.push(`maxLength: { value: ${rules.maxLength.value}, message: ${JSON.stringify(rules.maxLength.message)} }`);
|
|
197
|
-
}
|
|
198
|
-
if (rules.min !== undefined) {
|
|
199
|
-
parts.push(`min: { value: ${rules.min.value}, message: ${JSON.stringify(rules.min.message)} }`);
|
|
200
|
-
}
|
|
201
|
-
if (rules.max !== undefined) {
|
|
202
|
-
parts.push(`max: { value: ${rules.max.value}, message: ${JSON.stringify(rules.max.message)} }`);
|
|
203
|
-
}
|
|
204
|
-
if (rules.pattern !== undefined) {
|
|
205
|
-
parts.push(`pattern: { value: ${rules.pattern.value}, message: ${JSON.stringify(rules.pattern.message)} }`);
|
|
206
|
-
}
|
|
207
|
-
const rulesStr = parts.join(', ');
|
|
208
|
-
if (fieldKey.includes('${')) {
|
|
209
|
-
return `register(\`${fieldKey}\`, { ${rulesStr} })`;
|
|
210
|
-
}
|
|
211
|
-
return `register('${fieldKey}', { ${rulesStr} })`;
|
|
291
|
+
return `register(${pathToken}, { ${allParts.join(', ')} })`;
|
|
212
292
|
}
|
|
213
293
|
if (mode === 'zodSchema') {
|
|
214
294
|
const safeKey = fieldKey.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
return `register('${fieldKey}', { validate: _validate_${safeKey} })`;
|
|
295
|
+
const validatePart = `validate: _validate_${safeKey}`;
|
|
296
|
+
const allParts = [...coercionParts, validatePart];
|
|
297
|
+
return `register(${pathToken}, { ${allParts.join(', ')} })`;
|
|
219
298
|
}
|
|
220
299
|
if (mode === 'component-enforced') {
|
|
221
|
-
|
|
300
|
+
// component-enforced: no validation emitted, but coercion still applies
|
|
301
|
+
if (coercionParts.length === 0) {
|
|
302
|
+
return `register(${pathToken})`;
|
|
303
|
+
}
|
|
304
|
+
return `register(${pathToken}, { ${coercionParts.join(', ')} })`;
|
|
222
305
|
}
|
|
223
306
|
// TODO(L3): Handle watch mode when cross-field optimization is implemented
|
|
224
307
|
// if (mode === 'watch') { ... }
|
|
225
|
-
// undefined validation —
|
|
226
|
-
|
|
308
|
+
// undefined validation — emit coercion if present, otherwise bare register
|
|
309
|
+
if (coercionParts.length === 0) {
|
|
310
|
+
return `register(${pathToken})`;
|
|
311
|
+
}
|
|
312
|
+
return `register(${pathToken}, { ${coercionParts.join(', ')} })`;
|
|
227
313
|
}
|
|
228
314
|
/**
|
|
229
315
|
* Render a single `FormField` to its plain-HTML JSX string.
|
|
@@ -251,7 +337,7 @@ export function renderField(field, regExpr) {
|
|
|
251
337
|
case 'RadioGroup':
|
|
252
338
|
return renderSelect(field, regExpr);
|
|
253
339
|
case 'Textarea': {
|
|
254
|
-
const reg = regExpr ??
|
|
340
|
+
const reg = regExpr ?? buildRegisterExpr(field);
|
|
255
341
|
return `<textarea id="${field.key}"${disabledAttr(field)} {...${reg}} />`;
|
|
256
342
|
}
|
|
257
343
|
default:
|
package/dist/templates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wEAAwE;AACxE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,oDAAoD;AACpD,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;WAcxB,CAAC;AAEZ,wEAAwE;AACxE,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4ClC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,aAAa,CAC3B,gBAAwB,EACxB,UAAkB,EAClB,SAAS,GAAG,KAAK,EACjB,IAAI,GAA2B,QAAQ,EACvC,mBAA4B,EAC5B,OAAyF,EACzF,SAAgE,EAChE,WAAoB;IAEpB,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,IAAI,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,OAAO,EAAE,aAAa;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,OAAO,EAAE,YAAY,IAAI,IAAI,KAAK,WAAW;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC;IAE/E,MAAM,YAAY,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtF,MAAM,QAAQ,GAAG,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC;IAE9C,oEAAoE;IACpE,MAAM,kBAAkB,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3D,OAAO;QACL,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU;QACV,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6CAA6C,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,YAAY,UAAU,YAAY,gBAAgB,IAAI;QACtD,EAAE;QACF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QACxD,oEAAoE;QACpE,+EAA+E;QAC/E,yEAAyE;QACzE,GAAG,CAAC,UAAU;YACZ,CAAC,CAAC;gBACE,sDAAsD,UAAU,KAAK;gBACrE,yDAAyD,UAAU,KAAK;aACzE;YACH,CAAC,CAAC;gBACE,kEAAkE,UAAU,KAAK;gBACjF,qEAAqE,UAAU,KAAK;aACrF,CAAC;QACN,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,wBAAwB,CAAC,KAAgB;IAChD,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9B,4EAA4E;QAC5E,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAC5F,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrC,oEAAoE;QACpE,KAAK,CAAC,IAAI,CACR,qIAAqI,CACtI,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACnC,uCAAuC;QACvC,KAAK,CAAC,IAAI,CACR,wFAAwF,CACzF,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACnC,0EAA0E;QAC1E,+DAA+D;QAC/D,KAAK,CAAC,IAAI,CACR,2IAA2I,CAC5I,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,UAAU,GAAa,EAAE;IAC3E,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;IAEpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,YAAY,SAAS,GAAG,CAAC;IAClC,CAAC;IACD,OAAO,YAAY,SAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,KAAgB,EAAE,OAAgB;IACrD,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACzF,MAAM,GAAG,GAAG,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,cAAc,KAAK,CAAC,GAAG,WAAW,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;AAC7F,CAAC;AAED,SAAS,cAAc,CAAC,KAAgB,EAAE,OAAgB;IACxD,yEAAyE;IACzE,MAAM,GAAG,GAAG,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,cAAc,KAAK,CAAC,GAAG,oBAAoB,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;AACzF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAgB,EAAE,OAAgB;IAC1D,mFAAmF;IACnF,uFAAuF;IACvF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,cAAc,KAAK,CAAC,GAAG,gBAAgB,YAAY,CAAC,KAAK,CAAC,QAAQ,OAAO,MAAM,CAAC;IACzF,CAAC;IACD,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,gBAAgB,GACpB,wFAAwF,CAAC;IAC3F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAC3D,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;IACpE,MAAM,GAAG,GAAG,YAAY,SAAS,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACtE,OAAO,cAAc,KAAK,CAAC,GAAG,gBAAgB,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;AACrF,CAAC;AAED,SAAS,eAAe,CAAC,KAAgB,EAAE,OAAgB;IACzD,2EAA2E;IAC3E,MAAM,GAAG,GAAG,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,cAAc,KAAK,CAAC,GAAG,gBAAgB,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;AACrF,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB,EAAE,OAAgB;IACtD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;SAClC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,WAAW,CAAC;SACnF,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,kEAAkE;IAClE,+EAA+E;IAC/E,MAAM,GAAG,GAAG,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,eAAe,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,OAAO,WAAW,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAgB,EAAE,QAAgB;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC;IACpC,8EAA8E;IAC9E,gEAAgE;IAChE,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC;IAEhF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;QACtC,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,eAAe,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,eAAe,CAAC,IAAI,CAClB,uBAAuB,KAAK,CAAC,SAAS,CAAC,KAAK,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CACtG,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,eAAe,CAAC,IAAI,CAClB,uBAAuB,KAAK,CAAC,SAAS,CAAC,KAAK,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CACtG,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAClB,iBAAiB,KAAK,CAAC,GAAG,CAAC,KAAK,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CACpF,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAClB,iBAAiB,KAAK,CAAC,GAAG,CAAC,KAAK,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CACpF,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,eAAe,CAAC,IAAI,CAClB,qBAAqB,KAAK,CAAC,OAAO,CAAC,KAAK,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAChG,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,eAAe,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,YAAY,SAAS,GAAG,CAAC;QAClC,CAAC;QACD,OAAO,YAAY,SAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,uBAAuB,OAAO,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,YAAY,CAAC,CAAC;QAClD,OAAO,YAAY,SAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAClC,wEAAwE;QACxE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,YAAY,SAAS,GAAG,CAAC;QAClC,CAAC;QACD,OAAO,YAAY,SAAS,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACnE,CAAC;IAED,2EAA2E;IAC3E,gCAAgC;IAEhC,2EAA2E;IAC3E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,YAAY,SAAS,GAAG,CAAC;IAClC,CAAC;IACD,OAAO,YAAY,SAAS,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,OAAgB;IAC5D,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY;YACf,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtC,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAChD,OAAO,iBAAiB,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC5E,CAAC;QACD;YACE,OAAO,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zod-to-form/codegen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Browser-safe code generation for Zod v4 form components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/pradeepmouli/zod-to-form#readme",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"dist"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@zod-to-form/core": "0.
|
|
38
|
+
"@zod-to-form/core": "0.11.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"zod": "^4.4.3"
|