@metaobjectsdev/codegen-ts-react 0.23.2 → 0.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAa,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAiCzF,OAAO,EAAE,KAAK,aAAa,EAAgE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAa,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAiCzF,OAAO,EAAE,KAAK,aAAa,EAAgE,MAAM,4BAA4B,CAAC;AA8Q9H,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CA4Q7E"}
|
|
@@ -240,6 +240,37 @@ function viewKindFor(field, view) {
|
|
|
240
240
|
function enumValues(field) {
|
|
241
241
|
return field.attr(FIELD_ATTR_VALUES) ?? [];
|
|
242
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Fields whose control can submit `""` for "the user left it blank" (#223).
|
|
245
|
+
*
|
|
246
|
+
* An HTML control has no way to distinguish "empty" from "not provided" — a blank text,
|
|
247
|
+
* date or number input, an unselected `<option value="">`, and an empty textarea all
|
|
248
|
+
* yield the empty string. For a nullable date/timestamp column that is not a value at
|
|
249
|
+
* all (it fails the column's type), and for every other nullable column it makes a
|
|
250
|
+
* `!= null` check read a blank field as SET.
|
|
251
|
+
*
|
|
252
|
+
* Excluded because they cannot produce `""`, and naming one anyway would be a claim about
|
|
253
|
+
* a control that does not exist:
|
|
254
|
+
* - a checkbox — always a boolean, and `false` is a real answer, never "blank";
|
|
255
|
+
* - a `view.image` — Controller-managed, and its value is an opaque storage key;
|
|
256
|
+
* - a nested `field.object` and any array field — rendered as a nested block or a
|
|
257
|
+
* `useFieldArray` list, so what they submit is an object or an array.
|
|
258
|
+
* A `@required` field is excluded too: blank there is a validation error the schema
|
|
259
|
+
* already owns, and rewriting it would turn a caught error into a silent null.
|
|
260
|
+
*/
|
|
261
|
+
function blankableOptionalFields(fields) {
|
|
262
|
+
return fields
|
|
263
|
+
.filter((f) => f.attr(FIELD_ATTR_REQUIRED) !== true)
|
|
264
|
+
.filter((f) => f.subType !== FIELD_SUBTYPE_OBJECT && !f.resolvedIsArray())
|
|
265
|
+
.filter((f) => {
|
|
266
|
+
const kind = viewKindFor(f, f.views()[0]); // resolving accessor (ADR-0039)
|
|
267
|
+
return kind !== VIEW_SUBTYPE_CHECKBOX && kind !== VIEW_SUBTYPE_IMAGE;
|
|
268
|
+
})
|
|
269
|
+
.map((f) => f.name);
|
|
270
|
+
}
|
|
271
|
+
/** Names of the two symbols the blank-normalizer emits, kept out of the template string. */
|
|
272
|
+
const BLANK_FIELDS_CONST = "BLANK_OPTIONAL_FIELDS";
|
|
273
|
+
const BLANK_NORMALIZER = "normalizeBlankOptionals";
|
|
243
274
|
export function renderFormFile(entity, ctx) {
|
|
244
275
|
const entityName = entity.name;
|
|
245
276
|
// Import the entity's own file. Same target → relative "./Entity"; cross
|
|
@@ -269,6 +300,44 @@ export function renderFormFile(entity, ctx) {
|
|
|
269
300
|
const ReactElementSym = imp("t:ReactElement@react");
|
|
270
301
|
const SubmitHandlerSym = imp("t:SubmitHandler@react-hook-form");
|
|
271
302
|
const useEntityFormSym = imp("useEntityForm@@metaobjectsdev/react");
|
|
303
|
+
// #223 — a blank optional control submits `""`, which is not what the user meant and,
|
|
304
|
+
// on a nullable date/timestamp column, is not even a legal value. The correct handling
|
|
305
|
+
// is a TRISTATE and it needs create-vs-edit awareness, which is why it cannot be the
|
|
306
|
+
// blanket "strip empty strings" a downstream project reached for: under FR-035's
|
|
307
|
+
// present-key PATCH semantics an ABSENT key means "leave untouched", so stripping a
|
|
308
|
+
// cleared field on the edit path silently fails to clear it.
|
|
309
|
+
//
|
|
310
|
+
// CREATE (no defaultValues) — omit the key, so the column's DEFAULT/NULL applies.
|
|
311
|
+
// EDIT (defaultValues) — send explicit null, which is what CLEARS the column.
|
|
312
|
+
//
|
|
313
|
+
// Emitted only when the entity actually has a blankable optional field, so an
|
|
314
|
+
// all-required form's output is byte-identical to before.
|
|
315
|
+
const blankFields = blankableOptionalFields(fields);
|
|
316
|
+
const blankHelper = blankFields.length === 0 ? "" : `
|
|
317
|
+
const ${BLANK_FIELDS_CONST} = ${JSON.stringify(blankFields)} as const;
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Normalize blank optional inputs on the way out of the form (#223).
|
|
321
|
+
* On create a blank field is OMITTED (the column defaults); on edit it is sent as
|
|
322
|
+
* explicit \`null\` (present-null clears, per the FR-035 PATCH tristate).
|
|
323
|
+
*/
|
|
324
|
+
function ${BLANK_NORMALIZER}(values: Record<string, unknown>, isEdit: boolean): Record<string, unknown> {
|
|
325
|
+
const out: Record<string, unknown> = { ...values };
|
|
326
|
+
for (const key of ${BLANK_FIELDS_CONST}) {
|
|
327
|
+
if (out[key] !== '') continue;
|
|
328
|
+
if (isEdit) out[key] = null;
|
|
329
|
+
else delete out[key];
|
|
330
|
+
}
|
|
331
|
+
return out;
|
|
332
|
+
}
|
|
333
|
+
`;
|
|
334
|
+
// The cast chain is unchanged in spirit from the previous `props.onSubmit as never`:
|
|
335
|
+
// RHF's SubmitHandler is generic over the form's own inferred shape, which is not the
|
|
336
|
+
// Row type this component's prop is declared against.
|
|
337
|
+
const submitHandlerExpr = blankFields.length === 0
|
|
338
|
+
? "props.onSubmit as never"
|
|
339
|
+
: `((values: Record<string, unknown>, event?: unknown) =>\n props.onSubmit(` +
|
|
340
|
+
`${BLANK_NORMALIZER}(values, props.defaultValues !== undefined) as never, event as never)) as never`;
|
|
272
341
|
// The flat scalar block: a label + pre-bound input + error span, driven
|
|
273
342
|
// entirely by the entity constants via `form.input.<field>`. Unchanged.
|
|
274
343
|
const scalarBlock = (f) => ` <div className="metaobjects-field" key=${JSON.stringify(f)}>
|
|
@@ -389,7 +458,7 @@ import {
|
|
|
389
458
|
} from ${JSON.stringify(entityFileSpec)};
|
|
390
459
|
import type { ${entityName} as ${entityName}Row } from ${JSON.stringify(entityFileSpec)};
|
|
391
460
|
${useFieldArrayImport}${imageImports}`;
|
|
392
|
-
const body = code
|
|
461
|
+
const body = code `${blankHelper}
|
|
393
462
|
export interface ${entityName}FormProps {
|
|
394
463
|
onSubmit: ${SubmitHandlerSym}<Partial<${entityName}Row>>;
|
|
395
464
|
defaultValues?: Partial<${entityName}Row>;
|
|
@@ -417,7 +486,7 @@ export function ${entityName}Form(props: ${entityName}FormProps): ${ReactElement
|
|
|
417
486
|
<form
|
|
418
487
|
className={props.className ?? 'metaobjects-form'}
|
|
419
488
|
data-entity={${entityName}.$entity}
|
|
420
|
-
onSubmit={form.handleSubmit(
|
|
489
|
+
onSubmit={form.handleSubmit(${submitHandlerExpr})}
|
|
421
490
|
>
|
|
422
491
|
${fieldBlocks}
|
|
423
492
|
<div className="metaobjects-form-actions">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file.js","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-file.js","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/codegen-ts-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.1",
|
|
4
4
|
"description": "React codegen for metaobjects — emits <Entity>.form.tsx files using react-hook-form and @metaobjectsdev/react helpers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@metaobjectsdev/metadata": "0.
|
|
49
|
-
"@metaobjectsdev/codegen-ts": "0.
|
|
48
|
+
"@metaobjectsdev/metadata": "0.24.1",
|
|
49
|
+
"@metaobjectsdev/codegen-ts": "0.24.1",
|
|
50
50
|
"ts-poet": "^6.10.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
@@ -291,6 +291,39 @@ function enumValues(field: MetaField): string[] {
|
|
|
291
291
|
return (field.attr(FIELD_ATTR_VALUES) as string[] | undefined) ?? [];
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
+
/**
|
|
295
|
+
* Fields whose control can submit `""` for "the user left it blank" (#223).
|
|
296
|
+
*
|
|
297
|
+
* An HTML control has no way to distinguish "empty" from "not provided" — a blank text,
|
|
298
|
+
* date or number input, an unselected `<option value="">`, and an empty textarea all
|
|
299
|
+
* yield the empty string. For a nullable date/timestamp column that is not a value at
|
|
300
|
+
* all (it fails the column's type), and for every other nullable column it makes a
|
|
301
|
+
* `!= null` check read a blank field as SET.
|
|
302
|
+
*
|
|
303
|
+
* Excluded because they cannot produce `""`, and naming one anyway would be a claim about
|
|
304
|
+
* a control that does not exist:
|
|
305
|
+
* - a checkbox — always a boolean, and `false` is a real answer, never "blank";
|
|
306
|
+
* - a `view.image` — Controller-managed, and its value is an opaque storage key;
|
|
307
|
+
* - a nested `field.object` and any array field — rendered as a nested block or a
|
|
308
|
+
* `useFieldArray` list, so what they submit is an object or an array.
|
|
309
|
+
* A `@required` field is excluded too: blank there is a validation error the schema
|
|
310
|
+
* already owns, and rewriting it would turn a caught error into a silent null.
|
|
311
|
+
*/
|
|
312
|
+
function blankableOptionalFields(fields: readonly MetaField[]): string[] {
|
|
313
|
+
return fields
|
|
314
|
+
.filter((f) => f.attr(FIELD_ATTR_REQUIRED) !== true)
|
|
315
|
+
.filter((f) => f.subType !== FIELD_SUBTYPE_OBJECT && !f.resolvedIsArray())
|
|
316
|
+
.filter((f) => {
|
|
317
|
+
const kind = viewKindFor(f, f.views()[0]); // resolving accessor (ADR-0039)
|
|
318
|
+
return kind !== VIEW_SUBTYPE_CHECKBOX && kind !== VIEW_SUBTYPE_IMAGE;
|
|
319
|
+
})
|
|
320
|
+
.map((f) => f.name);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/** Names of the two symbols the blank-normalizer emits, kept out of the template string. */
|
|
324
|
+
const BLANK_FIELDS_CONST = "BLANK_OPTIONAL_FIELDS";
|
|
325
|
+
const BLANK_NORMALIZER = "normalizeBlankOptionals";
|
|
326
|
+
|
|
294
327
|
export function renderFormFile(entity: MetaObject, ctx: RenderContext): string {
|
|
295
328
|
const entityName = entity.name;
|
|
296
329
|
// Import the entity's own file. Same target → relative "./Entity"; cross
|
|
@@ -328,6 +361,45 @@ export function renderFormFile(entity: MetaObject, ctx: RenderContext): string {
|
|
|
328
361
|
const SubmitHandlerSym = imp("t:SubmitHandler@react-hook-form");
|
|
329
362
|
const useEntityFormSym = imp("useEntityForm@@metaobjectsdev/react");
|
|
330
363
|
|
|
364
|
+
// #223 — a blank optional control submits `""`, which is not what the user meant and,
|
|
365
|
+
// on a nullable date/timestamp column, is not even a legal value. The correct handling
|
|
366
|
+
// is a TRISTATE and it needs create-vs-edit awareness, which is why it cannot be the
|
|
367
|
+
// blanket "strip empty strings" a downstream project reached for: under FR-035's
|
|
368
|
+
// present-key PATCH semantics an ABSENT key means "leave untouched", so stripping a
|
|
369
|
+
// cleared field on the edit path silently fails to clear it.
|
|
370
|
+
//
|
|
371
|
+
// CREATE (no defaultValues) — omit the key, so the column's DEFAULT/NULL applies.
|
|
372
|
+
// EDIT (defaultValues) — send explicit null, which is what CLEARS the column.
|
|
373
|
+
//
|
|
374
|
+
// Emitted only when the entity actually has a blankable optional field, so an
|
|
375
|
+
// all-required form's output is byte-identical to before.
|
|
376
|
+
const blankFields = blankableOptionalFields(fields);
|
|
377
|
+
const blankHelper = blankFields.length === 0 ? "" : `
|
|
378
|
+
const ${BLANK_FIELDS_CONST} = ${JSON.stringify(blankFields)} as const;
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Normalize blank optional inputs on the way out of the form (#223).
|
|
382
|
+
* On create a blank field is OMITTED (the column defaults); on edit it is sent as
|
|
383
|
+
* explicit \`null\` (present-null clears, per the FR-035 PATCH tristate).
|
|
384
|
+
*/
|
|
385
|
+
function ${BLANK_NORMALIZER}(values: Record<string, unknown>, isEdit: boolean): Record<string, unknown> {
|
|
386
|
+
const out: Record<string, unknown> = { ...values };
|
|
387
|
+
for (const key of ${BLANK_FIELDS_CONST}) {
|
|
388
|
+
if (out[key] !== '') continue;
|
|
389
|
+
if (isEdit) out[key] = null;
|
|
390
|
+
else delete out[key];
|
|
391
|
+
}
|
|
392
|
+
return out;
|
|
393
|
+
}
|
|
394
|
+
`;
|
|
395
|
+
// The cast chain is unchanged in spirit from the previous `props.onSubmit as never`:
|
|
396
|
+
// RHF's SubmitHandler is generic over the form's own inferred shape, which is not the
|
|
397
|
+
// Row type this component's prop is declared against.
|
|
398
|
+
const submitHandlerExpr = blankFields.length === 0
|
|
399
|
+
? "props.onSubmit as never"
|
|
400
|
+
: `((values: Record<string, unknown>, event?: unknown) =>\n props.onSubmit(` +
|
|
401
|
+
`${BLANK_NORMALIZER}(values, props.defaultValues !== undefined) as never, event as never)) as never`;
|
|
402
|
+
|
|
331
403
|
// The flat scalar block: a label + pre-bound input + error span, driven
|
|
332
404
|
// entirely by the entity constants via `form.input.<field>`. Unchanged.
|
|
333
405
|
const scalarBlock = (f: string) => ` <div className="metaobjects-field" key=${JSON.stringify(f)}>
|
|
@@ -473,7 +545,7 @@ import {
|
|
|
473
545
|
import type { ${entityName} as ${entityName}Row } from ${JSON.stringify(entityFileSpec)};
|
|
474
546
|
${useFieldArrayImport}${imageImports}`;
|
|
475
547
|
|
|
476
|
-
const body = code
|
|
548
|
+
const body = code`${blankHelper}
|
|
477
549
|
export interface ${entityName}FormProps {
|
|
478
550
|
onSubmit: ${SubmitHandlerSym}<Partial<${entityName}Row>>;
|
|
479
551
|
defaultValues?: Partial<${entityName}Row>;
|
|
@@ -501,7 +573,7 @@ export function ${entityName}Form(props: ${entityName}FormProps): ${ReactElement
|
|
|
501
573
|
<form
|
|
502
574
|
className={props.className ?? 'metaobjects-form'}
|
|
503
575
|
data-entity={${entityName}.$entity}
|
|
504
|
-
onSubmit={form.handleSubmit(
|
|
576
|
+
onSubmit={form.handleSubmit(${submitHandlerExpr})}
|
|
505
577
|
>
|
|
506
578
|
${fieldBlocks}
|
|
507
579
|
<div className="metaobjects-form-actions">
|