@metaobjectsdev/codegen-ts-react 0.24.5 → 0.25.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/form-file.d.ts +5 -1
- package/dist/form-file.d.ts.map +1 -1
- package/dist/form-file.js +14 -22
- package/dist/form-file.js.map +1 -1
- package/dist/templates/form-file.d.ts.map +1 -1
- package/dist/templates/form-file.js +22 -28
- package/dist/templates/form-file.js.map +1 -1
- package/package.json +3 -3
- package/src/form-file.ts +14 -18
- package/src/reference/form.ts +14 -21
- package/src/templates/form-file.ts +32 -27
package/dist/form-file.d.ts
CHANGED
|
@@ -6,8 +6,12 @@ export interface FormFileOpts {
|
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Forms are opt-in: a user must add `formFile()` to config.generators.
|
|
9
|
-
* Per-entity opt-out via `@emitForm: false` is honored.
|
|
10
9
|
* .tsx files are not piped through formatTs (Biome only handles .ts here).
|
|
10
|
+
*
|
|
11
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
12
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
13
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
14
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
11
15
|
*/
|
|
12
16
|
export declare const formFile: GeneratorFactory<FormFileOpts>;
|
|
13
17
|
//# sourceMappingURL=form-file.d.ts.map
|
package/dist/form-file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../src/form-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../src/form-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAA2D,MAAM,4BAA4B,CAAC;AAGvJ,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAoChB,gBAAgB,CAAC,YAAY,CAAC,CAAC"}
|
package/dist/form-file.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { perEntity, entityOutputPath, servesWriteApi, isProjection, isTphSubtype, CODEGEN_ATTR_EMIT_FORM, withClientDirective } from "@metaobjectsdev/codegen-ts";
|
|
1
|
+
import { perEntity, entityOutputPath, hasGeneratedForm, withClientDirective } from "@metaobjectsdev/codegen-ts";
|
|
3
2
|
import { renderFormFile } from "./templates/form-file.js";
|
|
4
3
|
/**
|
|
5
4
|
* Forms are opt-in: a user must add `formFile()` to config.generators.
|
|
6
|
-
* Per-entity opt-out via `@emitForm: false` is honored.
|
|
7
5
|
* .tsx files are not piped through formatTs (Biome only handles .ts here).
|
|
6
|
+
*
|
|
7
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
8
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
9
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
10
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
8
11
|
*/
|
|
9
12
|
export const formFile = function formFile(opts) {
|
|
10
13
|
const userFilter = opts?.filter ?? (() => true);
|
|
@@ -12,29 +15,18 @@ export const formFile = function formFile(opts) {
|
|
|
12
15
|
name: "form-file",
|
|
13
16
|
// Always set: AND-composes the framework write-artifact guard
|
|
14
17
|
// (skips abstract types — no instance — and read-only projections —
|
|
15
|
-
// instantiable for read, never for write)
|
|
16
|
-
// the optional user filter.
|
|
18
|
+
// instantiable for read, never for write) with the optional user filter.
|
|
17
19
|
// FR-017 Tier 3: forms are ALWAYS per-subtype. The discriminator base gets
|
|
18
20
|
// NO form (you can't create an abstract base), but each concrete subtype
|
|
19
21
|
// does — even though it has no own writable source (it inherits the base's).
|
|
20
22
|
filter: (e) => {
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// A discriminator base is never form-rendered directly.
|
|
29
|
-
// ADR-0039: own — @discriminator identifies a TPH base level (read own so a
|
|
30
|
-
// subtype isn't mistaken for a base); e is already known not to be a subtype.
|
|
31
|
-
if (typeof e.ownAttr(OBJECT_ATTR_DISCRIMINATOR) === "string")
|
|
32
|
-
return false;
|
|
33
|
-
// A form is a client of a WRITE endpoint. Ask whether one exists, not where the
|
|
34
|
-
// data is stored — see api-surface.ts. `!isProjection` stays explicit here: a
|
|
35
|
-
// read-only view is a UI-tier exclusion (nothing to submit), distinct from
|
|
36
|
-
// whether write endpoints exist at all.
|
|
37
|
-
return servesWriteApi(e) && !isProjection(e);
|
|
23
|
+
// `hasGeneratedForm` (api-surface.ts) holds the whole rule: per-subtype form for a
|
|
24
|
+
// TPH subtype, NO form for a discriminator base (you cannot create a base, and its
|
|
25
|
+
// polymorphic mount is read-only by construction), and a write endpoint that is not
|
|
26
|
+
// a read-only projection otherwise. It is shared with `agent/ui.md`, which has to
|
|
27
|
+
// say "there is deliberately no form here" for exactly the set skipped here — asking
|
|
28
|
+
// `servesWriteApi` there instead announced a form for every discriminator base.
|
|
29
|
+
return userFilter(e) && hasGeneratedForm(e);
|
|
38
30
|
},
|
|
39
31
|
generate: perEntity((entity, ctx) => {
|
|
40
32
|
if (!ctx.renderContext) {
|
package/dist/form-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file.js","sourceRoot":"","sources":["../src/form-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"form-file.js","sourceRoot":"","sources":["../src/form-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACvJ,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,QAAQ,CAAC,IAAmB;IAC3D,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,WAAW;QACjB,8DAA8D;QAC9D,oEAAoE;QACpE,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE;YACxB,mFAAmF;YACnF,mFAAmF;YACnF,oFAAoF;YACpF,kFAAkF;YAClF,qFAAqF;YACrF,gFAAgF;YAChF,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAClC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,WAAW,CAAC;gBACpG,OAAO,EAAE,mBAAmB,CAC1B,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,EACzC,GAAG,CAAC,aAAa,CAAC,eAAe,CAClC;aACF,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAmC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAa,UAAU,EAAY,MAAM,0BAA0B,CAAC;AAgC3E,OAAO,EACL,KAAK,aAAa,EAQnB,MAAM,4BAA4B,CAAC;AAoQpC,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CA+Q7E"}
|
|
@@ -17,12 +17,16 @@
|
|
|
17
17
|
// - Fields with @formExclude: true on the metadata
|
|
18
18
|
// - Fields auto-defaulted to CURRENT_TIMESTAMP at the DB
|
|
19
19
|
//
|
|
20
|
-
// Form generation is OPT-IN
|
|
21
|
-
//
|
|
20
|
+
// Form generation is OPT-IN at PROJECT level: add `formFile()` to `generators`
|
|
21
|
+
// in metaobjects.config.ts. Most projects don't need stock forms. Narrow it to
|
|
22
|
+
// a subset with `formFile({ filter })`. There is no `@emitForm` metadata
|
|
23
|
+
// attribute — it was never registered vocabulary, so `meta verify` rejects it
|
|
24
|
+
// (ERR_UNKNOWN_ATTR); the doc line here used to claim it turned generation ON,
|
|
25
|
+
// while the filter beside it read it as an opt-OUT. Neither is true now.
|
|
22
26
|
import { code, imp } from "ts-poet";
|
|
23
|
-
import { MetaField, MetaObject, MetaView
|
|
24
|
-
import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_FIELDS, FIELD_ATTR_DEFAULT, FIELD_SUBTYPE_OBJECT,
|
|
25
|
-
import { entityModuleSpecifier, GENERATED_HEADER, tphDiscriminatorPin } from "@metaobjectsdev/codegen-ts";
|
|
27
|
+
import { MetaField, MetaObject, MetaView } from "@metaobjectsdev/metadata";
|
|
28
|
+
import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_FIELDS, FIELD_ATTR_DEFAULT, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_ATTR_FORM_EXCLUDE, FIELD_ATTR_VALUES, FIELD_ATTR_REQUIRED, FIELD_SUBTYPE_ENUM, VIEW_SUBTYPE_TEXTAREA, VIEW_SUBTYPE_DROPDOWN, VIEW_SUBTYPE_CHECKBOX, VIEW_SUBTYPE_RADIO, VIEW_SUBTYPE_IMAGE, VIEW_TEXTAREA_ATTR_ROWS, VIEW_IMAGE_ATTR_ASPECT_RATIO, VIEW_IMAGE_ATTR_MAX_EDGE, VIEW_IMAGE_ATTR_STORE, VIEW_IMAGE_ATTR_ACCEPT, VIEW_IMAGE_ATTR_MAX_BYTES, } from "@metaobjectsdev/metadata";
|
|
29
|
+
import { entityModuleSpecifier, GENERATED_HEADER, humanize, tphDiscriminatorPin, valueObjectFor, viewForContext, VIEW_CONTEXT_FORM, } from "@metaobjectsdev/codegen-ts";
|
|
26
30
|
function primaryFieldNames(entity) {
|
|
27
31
|
const set = new Set();
|
|
28
32
|
// identities() returns effective identities, so inherited identities (from extends:/super:) are included.
|
|
@@ -75,25 +79,13 @@ function visibleFields(entity, discField) {
|
|
|
75
79
|
/** Max recursion depth for nested value objects — a backstop alongside the
|
|
76
80
|
* per-branch visited-set cycle guard. */
|
|
77
81
|
const MAX_VO_DEPTH = 5;
|
|
78
|
-
/** Resolve a `field.object`'s `@objectRef` to the referenced value object from
|
|
79
|
-
*
|
|
80
|
-
*
|
|
82
|
+
/** Resolve a `field.object`'s `@objectRef` to the referenced value object from the loaded
|
|
83
|
+
* root — `valueObjectFor`, in `@metaobjectsdev/codegen-ts`, because `agent/ui.md` has to
|
|
84
|
+
* ask the SAME question to document what this generator renders. When the two answered
|
|
85
|
+
* separately the page printed the field's view kind (`text`) as the control for a field
|
|
86
|
+
* this generator emits as a nested sub-form and no input at all. */
|
|
81
87
|
function resolveValueObject(field, ctx) {
|
|
82
|
-
|
|
83
|
-
return undefined;
|
|
84
|
-
const ref = field.attr(FIELD_ATTR_OBJECT_REF);
|
|
85
|
-
if (typeof ref !== "string" || ref.length === 0)
|
|
86
|
-
return undefined;
|
|
87
|
-
const base = stripPackage(ref);
|
|
88
|
-
return ctx.loadedRoot.objects().find((o) => o.name === base);
|
|
89
|
-
}
|
|
90
|
-
/** camelCase / PascalCase → human label ("llmConfig" → "Llm Config"). */
|
|
91
|
-
function humanize(s) {
|
|
92
|
-
return s
|
|
93
|
-
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
94
|
-
.replace(/_/g, " ")
|
|
95
|
-
.replace(/\b\w/g, (c) => c.toUpperCase())
|
|
96
|
-
.trim();
|
|
88
|
+
return valueObjectFor(field, ctx.loadedRoot);
|
|
97
89
|
}
|
|
98
90
|
/** A real HTML <input type=...> for a scalar field subtype, or undefined (text). */
|
|
99
91
|
function htmlTypeForSubType(subType) {
|
|
@@ -227,8 +219,8 @@ ${inner.join("\n")}
|
|
|
227
219
|
/** The view kind that drives control selection: an explicit view child wins;
|
|
228
220
|
* an enum with no view defaults to a dropdown; otherwise null (typed <input>).
|
|
229
221
|
* Takes the already-resolved view (callers that also need view attrs, like
|
|
230
|
-
* the textarea `@rows` lookup, fetch it once via `field
|
|
231
|
-
* pass it through rather than re-deriving it here). */
|
|
222
|
+
* the textarea `@rows` lookup, fetch it once via `viewForContext(field,
|
|
223
|
+
* VIEW_CONTEXT_FORM)` and pass it through rather than re-deriving it here). */
|
|
232
224
|
function viewKindFor(field, view) {
|
|
233
225
|
if (view !== undefined)
|
|
234
226
|
return view.subType;
|
|
@@ -263,7 +255,8 @@ function blankableOptionalFields(fields) {
|
|
|
263
255
|
.filter((f) => f.attr(FIELD_ATTR_REQUIRED) !== true)
|
|
264
256
|
.filter((f) => f.subType !== FIELD_SUBTYPE_OBJECT && !f.resolvedIsArray())
|
|
265
257
|
.filter((f) => {
|
|
266
|
-
|
|
258
|
+
// #356 + ADR-0039: the view declared for the FORM, resolving through extends.
|
|
259
|
+
const kind = viewKindFor(f, viewForContext(f, VIEW_CONTEXT_FORM));
|
|
267
260
|
return kind !== VIEW_SUBTYPE_CHECKBOX && kind !== VIEW_SUBTYPE_IMAGE;
|
|
268
261
|
})
|
|
269
262
|
.map((f) => f.name);
|
|
@@ -371,7 +364,8 @@ ${control}
|
|
|
371
364
|
// scalarBlock's typed <input> bound via `form.input.<field>`.
|
|
372
365
|
const fieldControlFor = (field) => {
|
|
373
366
|
const name = field.name;
|
|
374
|
-
|
|
367
|
+
// #356 + ADR-0039: the view declared for the FORM, resolving through extends.
|
|
368
|
+
const view = viewForContext(field, VIEW_CONTEXT_FORM);
|
|
375
369
|
const kind = viewKindFor(field, view);
|
|
376
370
|
// Enum member symbols are validated to /^[A-Za-z_][A-Za-z0-9_]*$/, so raw
|
|
377
371
|
// interpolation into JSX attribute/text positions is safe (no escaping).
|
|
@@ -446,7 +440,7 @@ ${control}
|
|
|
446
440
|
// Only pull in Controller + ImageUpload when a view.image field needs them —
|
|
447
441
|
// a native <input> can't drive a file-upload control's value/onChange
|
|
448
442
|
// contract, so image fields are wrapped in react-hook-form's <Controller>.
|
|
449
|
-
const hasImage = fields.some((f) => f
|
|
443
|
+
const hasImage = fields.some((f) => viewForContext(f, VIEW_CONTEXT_FORM)?.subType === VIEW_SUBTYPE_IMAGE);
|
|
450
444
|
const imageImports = hasImage
|
|
451
445
|
? `import { Controller } from "react-hook-form";\nimport { ImageUpload } from "@metaobjectsdev/react";\n`
|
|
452
446
|
: "";
|
|
@@ -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.25.0",
|
|
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.25.0",
|
|
49
|
+
"@metaobjectsdev/codegen-ts": "0.25.0",
|
|
50
50
|
"ts-poet": "^6.10.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
package/src/form-file.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
2
|
-
import {
|
|
3
|
-
import { perEntity, type Generator, type GeneratorFactory, entityOutputPath, servesWriteApi, isProjection, isTphSubtype, CODEGEN_ATTR_EMIT_FORM, withClientDirective } from "@metaobjectsdev/codegen-ts";
|
|
2
|
+
import { perEntity, type Generator, type GeneratorFactory, entityOutputPath, hasGeneratedForm, withClientDirective } from "@metaobjectsdev/codegen-ts";
|
|
4
3
|
import { renderFormFile } from "./templates/form-file.js";
|
|
5
4
|
|
|
6
5
|
export interface FormFileOpts {
|
|
@@ -10,8 +9,12 @@ export interface FormFileOpts {
|
|
|
10
9
|
|
|
11
10
|
/**
|
|
12
11
|
* Forms are opt-in: a user must add `formFile()` to config.generators.
|
|
13
|
-
* Per-entity opt-out via `@emitForm: false` is honored.
|
|
14
12
|
* .tsx files are not piped through formatTs (Biome only handles .ts here).
|
|
13
|
+
*
|
|
14
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
15
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
16
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
17
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
15
18
|
*/
|
|
16
19
|
export const formFile = function formFile(opts?: FormFileOpts): Generator {
|
|
17
20
|
const userFilter = opts?.filter ?? (() => true);
|
|
@@ -19,25 +22,18 @@ export const formFile = function formFile(opts?: FormFileOpts): Generator {
|
|
|
19
22
|
name: "form-file",
|
|
20
23
|
// Always set: AND-composes the framework write-artifact guard
|
|
21
24
|
// (skips abstract types — no instance — and read-only projections —
|
|
22
|
-
// instantiable for read, never for write)
|
|
23
|
-
// the optional user filter.
|
|
25
|
+
// instantiable for read, never for write) with the optional user filter.
|
|
24
26
|
// FR-017 Tier 3: forms are ALWAYS per-subtype. The discriminator base gets
|
|
25
27
|
// NO form (you can't create an abstract base), but each concrete subtype
|
|
26
28
|
// does — even though it has no own writable source (it inherits the base's).
|
|
27
29
|
filter: (e: MetaObject) => {
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
|
|
35
|
-
if (typeof e.ownAttr(OBJECT_ATTR_DISCRIMINATOR) === "string") return false;
|
|
36
|
-
// A form is a client of a WRITE endpoint. Ask whether one exists, not where the
|
|
37
|
-
// data is stored — see api-surface.ts. `!isProjection` stays explicit here: a
|
|
38
|
-
// read-only view is a UI-tier exclusion (nothing to submit), distinct from
|
|
39
|
-
// whether write endpoints exist at all.
|
|
40
|
-
return servesWriteApi(e) && !isProjection(e);
|
|
30
|
+
// `hasGeneratedForm` (api-surface.ts) holds the whole rule: per-subtype form for a
|
|
31
|
+
// TPH subtype, NO form for a discriminator base (you cannot create a base, and its
|
|
32
|
+
// polymorphic mount is read-only by construction), and a write endpoint that is not
|
|
33
|
+
// a read-only projection otherwise. It is shared with `agent/ui.md`, which has to
|
|
34
|
+
// say "there is deliberately no form here" for exactly the set skipped here — asking
|
|
35
|
+
// `servesWriteApi` there instead announced a form for every discriminator base.
|
|
36
|
+
return userFilter(e) && hasGeneratedForm(e);
|
|
41
37
|
},
|
|
42
38
|
generate: perEntity((entity, ctx) => {
|
|
43
39
|
if (!ctx.renderContext) {
|
package/src/reference/form.ts
CHANGED
|
@@ -18,16 +18,12 @@
|
|
|
18
18
|
// composes-with: entity.ts (imports the schemas the form validates against).
|
|
19
19
|
|
|
20
20
|
import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
21
|
-
import { OBJECT_ATTR_DISCRIMINATOR } from "@metaobjectsdev/metadata";
|
|
22
21
|
import {
|
|
23
22
|
perEntity,
|
|
24
23
|
type Generator,
|
|
25
24
|
type GeneratorFactory,
|
|
26
25
|
entityOutputPath,
|
|
27
|
-
|
|
28
|
-
isProjection,
|
|
29
|
-
isTphSubtype,
|
|
30
|
-
CODEGEN_ATTR_EMIT_FORM,
|
|
26
|
+
hasGeneratedForm,
|
|
31
27
|
withClientDirective,
|
|
32
28
|
} from "@metaobjectsdev/codegen-ts";
|
|
33
29
|
import { renderFormFile } from "@metaobjectsdev/codegen-ts-react";
|
|
@@ -39,8 +35,12 @@ export interface FormFileOpts {
|
|
|
39
35
|
|
|
40
36
|
/**
|
|
41
37
|
* Forms are opt-in: a user must add `formFile()` to config.generators.
|
|
42
|
-
* Per-entity opt-out via `@emitForm: false` is honored.
|
|
43
38
|
* .tsx files are not piped through formatTs (Biome only handles .ts here).
|
|
39
|
+
*
|
|
40
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
41
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
42
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
43
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
44
44
|
*/
|
|
45
45
|
export const formFile = function formFile(opts?: FormFileOpts): Generator {
|
|
46
46
|
const userFilter = opts?.filter ?? (() => true);
|
|
@@ -48,25 +48,18 @@ export const formFile = function formFile(opts?: FormFileOpts): Generator {
|
|
|
48
48
|
name: "form-file",
|
|
49
49
|
// Always set: AND-composes the framework write-artifact guard
|
|
50
50
|
// (skips abstract types — no instance — and read-only projections —
|
|
51
|
-
// instantiable for read, never for write)
|
|
52
|
-
// the optional user filter.
|
|
51
|
+
// instantiable for read, never for write) with the optional user filter.
|
|
53
52
|
// FR-017 Tier 3: forms are ALWAYS per-subtype. The discriminator base gets
|
|
54
53
|
// NO form (you can't create an abstract base), but each concrete subtype
|
|
55
54
|
// does — even though it has no own writable source (it inherits the base's).
|
|
56
55
|
filter: (e: MetaObject) => {
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
if (typeof e.ownAttr(OBJECT_ATTR_DISCRIMINATOR) === "string") return false;
|
|
65
|
-
// A form is a client of a WRITE endpoint. Ask whether one exists, not where the
|
|
66
|
-
// data is stored — see api-surface.ts. `!isProjection` stays explicit here: a
|
|
67
|
-
// read-only view is a UI-tier exclusion (nothing to submit), distinct from
|
|
68
|
-
// whether write endpoints exist at all.
|
|
69
|
-
return servesWriteApi(e) && !isProjection(e);
|
|
56
|
+
// `hasGeneratedForm` (api-surface.ts) holds the whole rule: per-subtype form for a
|
|
57
|
+
// TPH subtype, NO form for a discriminator base (you cannot create a base, and its
|
|
58
|
+
// polymorphic mount is read-only by construction), and a write endpoint that is not
|
|
59
|
+
// a read-only projection otherwise. It is shared with `agent/ui.md`, which has to
|
|
60
|
+
// say "there is deliberately no form here" for exactly the set skipped here — asking
|
|
61
|
+
// `servesWriteApi` there instead announced a form for every discriminator base.
|
|
62
|
+
return userFilter(e) && hasGeneratedForm(e);
|
|
70
63
|
},
|
|
71
64
|
generate: perEntity((entity, ctx) => {
|
|
72
65
|
if (!ctx.renderContext) {
|
|
@@ -17,17 +17,20 @@
|
|
|
17
17
|
// - Fields with @formExclude: true on the metadata
|
|
18
18
|
// - Fields auto-defaulted to CURRENT_TIMESTAMP at the DB
|
|
19
19
|
//
|
|
20
|
-
// Form generation is OPT-IN
|
|
21
|
-
//
|
|
20
|
+
// Form generation is OPT-IN at PROJECT level: add `formFile()` to `generators`
|
|
21
|
+
// in metaobjects.config.ts. Most projects don't need stock forms. Narrow it to
|
|
22
|
+
// a subset with `formFile({ filter })`. There is no `@emitForm` metadata
|
|
23
|
+
// attribute — it was never registered vocabulary, so `meta verify` rejects it
|
|
24
|
+
// (ERR_UNKNOWN_ATTR); the doc line here used to claim it turned generation ON,
|
|
25
|
+
// while the filter beside it read it as an opt-OUT. Neither is true now.
|
|
22
26
|
|
|
23
27
|
import { code, imp } from "ts-poet";
|
|
24
|
-
import { MetaField, MetaObject, MetaView
|
|
28
|
+
import { MetaField, MetaObject, MetaView } from "@metaobjectsdev/metadata";
|
|
25
29
|
import {
|
|
26
30
|
IDENTITY_SUBTYPE_PRIMARY,
|
|
27
31
|
IDENTITY_ATTR_FIELDS,
|
|
28
32
|
FIELD_ATTR_DEFAULT,
|
|
29
33
|
FIELD_SUBTYPE_OBJECT,
|
|
30
|
-
FIELD_ATTR_OBJECT_REF,
|
|
31
34
|
FIELD_SUBTYPE_INT,
|
|
32
35
|
FIELD_SUBTYPE_LONG,
|
|
33
36
|
FIELD_SUBTYPE_DOUBLE,
|
|
@@ -54,7 +57,16 @@ import {
|
|
|
54
57
|
VIEW_IMAGE_ATTR_ACCEPT,
|
|
55
58
|
VIEW_IMAGE_ATTR_MAX_BYTES,
|
|
56
59
|
} from "@metaobjectsdev/metadata";
|
|
57
|
-
import {
|
|
60
|
+
import {
|
|
61
|
+
type RenderContext,
|
|
62
|
+
entityModuleSpecifier,
|
|
63
|
+
GENERATED_HEADER,
|
|
64
|
+
humanize,
|
|
65
|
+
tphDiscriminatorPin,
|
|
66
|
+
valueObjectFor,
|
|
67
|
+
viewForContext,
|
|
68
|
+
VIEW_CONTEXT_FORM,
|
|
69
|
+
} from "@metaobjectsdev/codegen-ts";
|
|
58
70
|
|
|
59
71
|
function primaryFieldNames(entity: MetaObject): Set<string> {
|
|
60
72
|
const set = new Set<string>();
|
|
@@ -105,24 +117,13 @@ function visibleFields(entity: MetaObject, discField?: string): MetaField[] {
|
|
|
105
117
|
* per-branch visited-set cycle guard. */
|
|
106
118
|
const MAX_VO_DEPTH = 5;
|
|
107
119
|
|
|
108
|
-
/** Resolve a `field.object`'s `@objectRef` to the referenced value object from
|
|
109
|
-
*
|
|
110
|
-
*
|
|
120
|
+
/** Resolve a `field.object`'s `@objectRef` to the referenced value object from the loaded
|
|
121
|
+
* root — `valueObjectFor`, in `@metaobjectsdev/codegen-ts`, because `agent/ui.md` has to
|
|
122
|
+
* ask the SAME question to document what this generator renders. When the two answered
|
|
123
|
+
* separately the page printed the field's view kind (`text`) as the control for a field
|
|
124
|
+
* this generator emits as a nested sub-form and no input at all. */
|
|
111
125
|
function resolveValueObject(field: MetaField, ctx: RenderContext): MetaObject | undefined {
|
|
112
|
-
|
|
113
|
-
const ref = field.attr(FIELD_ATTR_OBJECT_REF);
|
|
114
|
-
if (typeof ref !== "string" || ref.length === 0) return undefined;
|
|
115
|
-
const base = stripPackage(ref);
|
|
116
|
-
return ctx.loadedRoot.objects().find((o) => o.name === base) as MetaObject | undefined;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/** camelCase / PascalCase → human label ("llmConfig" → "Llm Config"). */
|
|
120
|
-
function humanize(s: string): string {
|
|
121
|
-
return s
|
|
122
|
-
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
123
|
-
.replace(/_/g, " ")
|
|
124
|
-
.replace(/\b\w/g, (c) => c.toUpperCase())
|
|
125
|
-
.trim();
|
|
126
|
+
return valueObjectFor(field, ctx.loadedRoot);
|
|
126
127
|
}
|
|
127
128
|
|
|
128
129
|
/** A real HTML <input type=...> for a scalar field subtype, or undefined (text). */
|
|
@@ -278,8 +279,8 @@ ${inner.join("\n")}
|
|
|
278
279
|
/** The view kind that drives control selection: an explicit view child wins;
|
|
279
280
|
* an enum with no view defaults to a dropdown; otherwise null (typed <input>).
|
|
280
281
|
* Takes the already-resolved view (callers that also need view attrs, like
|
|
281
|
-
* the textarea `@rows` lookup, fetch it once via `field
|
|
282
|
-
* pass it through rather than re-deriving it here). */
|
|
282
|
+
* the textarea `@rows` lookup, fetch it once via `viewForContext(field,
|
|
283
|
+
* VIEW_CONTEXT_FORM)` and pass it through rather than re-deriving it here). */
|
|
283
284
|
function viewKindFor(field: MetaField, view: MetaView | undefined): string | null {
|
|
284
285
|
if (view !== undefined) return view.subType;
|
|
285
286
|
if (field.subType === FIELD_SUBTYPE_ENUM) return VIEW_SUBTYPE_DROPDOWN;
|
|
@@ -314,7 +315,8 @@ function blankableOptionalFields(fields: readonly MetaField[]): string[] {
|
|
|
314
315
|
.filter((f) => f.attr(FIELD_ATTR_REQUIRED) !== true)
|
|
315
316
|
.filter((f) => f.subType !== FIELD_SUBTYPE_OBJECT && !f.resolvedIsArray())
|
|
316
317
|
.filter((f) => {
|
|
317
|
-
|
|
318
|
+
// #356 + ADR-0039: the view declared for the FORM, resolving through extends.
|
|
319
|
+
const kind = viewKindFor(f, viewForContext(f, VIEW_CONTEXT_FORM));
|
|
318
320
|
return kind !== VIEW_SUBTYPE_CHECKBOX && kind !== VIEW_SUBTYPE_IMAGE;
|
|
319
321
|
})
|
|
320
322
|
.map((f) => f.name);
|
|
@@ -436,7 +438,8 @@ ${control}
|
|
|
436
438
|
// scalarBlock's typed <input> bound via `form.input.<field>`.
|
|
437
439
|
const fieldControlFor = (field: MetaField): string => {
|
|
438
440
|
const name = field.name;
|
|
439
|
-
|
|
441
|
+
// #356 + ADR-0039: the view declared for the FORM, resolving through extends.
|
|
442
|
+
const view = viewForContext(field, VIEW_CONTEXT_FORM);
|
|
440
443
|
const kind = viewKindFor(field, view);
|
|
441
444
|
// Enum member symbols are validated to /^[A-Za-z_][A-Za-z0-9_]*$/, so raw
|
|
442
445
|
// interpolation into JSX attribute/text positions is safe (no escaping).
|
|
@@ -531,7 +534,9 @@ ${control}
|
|
|
531
534
|
// Only pull in Controller + ImageUpload when a view.image field needs them —
|
|
532
535
|
// a native <input> can't drive a file-upload control's value/onChange
|
|
533
536
|
// contract, so image fields are wrapped in react-hook-form's <Controller>.
|
|
534
|
-
const hasImage = fields.some(
|
|
537
|
+
const hasImage = fields.some(
|
|
538
|
+
(f) => viewForContext(f, VIEW_CONTEXT_FORM)?.subType === VIEW_SUBTYPE_IMAGE,
|
|
539
|
+
);
|
|
535
540
|
const imageImports = hasImage
|
|
536
541
|
? `import { Controller } from "react-hook-form";\nimport { ImageUpload } from "@metaobjectsdev/react";\n`
|
|
537
542
|
: "";
|