@metaobjectsdev/codegen-ts 1.0.4 → 1.0.5-rc.2
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/column-mapper.d.ts.map +1 -1
- package/dist/column-mapper.js +14 -0
- package/dist/column-mapper.js.map +1 -1
- package/dist/generators/api-model.d.ts.map +1 -1
- package/dist/generators/api-model.js +6 -6
- package/dist/generators/api-model.js.map +1 -1
- package/dist/generators/queries-file.d.ts.map +1 -1
- package/dist/generators/queries-file.js +7 -2
- package/dist/generators/queries-file.js.map +1 -1
- package/dist/generators/routes-file-hono.d.ts +2 -1
- package/dist/generators/routes-file-hono.d.ts.map +1 -1
- package/dist/generators/routes-file-hono.js +4 -3
- package/dist/generators/routes-file-hono.js.map +1 -1
- package/dist/generators/routes-file.d.ts +2 -1
- package/dist/generators/routes-file.d.ts.map +1 -1
- package/dist/generators/routes-file.js +4 -3
- package/dist/generators/routes-file.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/projection/extract-view-spec.d.ts.map +1 -1
- package/dist/projection/extract-view-spec.js +49 -3
- package/dist/projection/extract-view-spec.js.map +1 -1
- package/dist/templates/drizzle-schema.d.ts +9 -1
- package/dist/templates/drizzle-schema.d.ts.map +1 -1
- package/dist/templates/drizzle-schema.js +37 -49
- package/dist/templates/drizzle-schema.js.map +1 -1
- package/dist/templates/entity-file.d.ts.map +1 -1
- package/dist/templates/entity-file.js +9 -1
- package/dist/templates/entity-file.js.map +1 -1
- package/dist/templates/enum-int-codec.d.ts +43 -0
- package/dist/templates/enum-int-codec.d.ts.map +1 -0
- package/dist/templates/enum-int-codec.js +66 -0
- package/dist/templates/enum-int-codec.js.map +1 -0
- package/dist/templates/inferred-types.d.ts.map +1 -1
- package/dist/templates/inferred-types.js +7 -1
- package/dist/templates/inferred-types.js.map +1 -1
- package/dist/templates/relations-block.d.ts.map +1 -1
- package/dist/templates/relations-block.js +13 -6
- package/dist/templates/relations-block.js.map +1 -1
- package/dist/templates/routes-file.d.ts.map +1 -1
- package/dist/templates/routes-file.js +21 -4
- package/dist/templates/routes-file.js.map +1 -1
- package/dist/templates/view-decl.d.ts +8 -0
- package/dist/templates/view-decl.d.ts.map +1 -1
- package/dist/templates/view-decl.js +29 -4
- package/dist/templates/view-decl.js.map +1 -1
- package/dist/templates/zod-validators.d.ts +32 -1
- package/dist/templates/zod-validators.d.ts.map +1 -1
- package/dist/templates/zod-validators.js +49 -3
- package/dist/templates/zod-validators.js.map +1 -1
- package/package.json +6 -6
- package/src/column-mapper.ts +13 -0
- package/src/generators/api-model.ts +6 -6
- package/src/generators/queries-file.ts +7 -2
- package/src/generators/routes-file-hono.ts +4 -3
- package/src/generators/routes-file.ts +4 -3
- package/src/index.ts +1 -1
- package/src/projection/extract-view-spec.ts +55 -6
- package/src/reference/queries.ts +4 -2
- package/src/reference/routes-hono.ts +2 -2
- package/src/reference/routes.ts +4 -3
- package/src/templates/drizzle-schema.ts +37 -50
- package/src/templates/entity-file.ts +9 -1
- package/src/templates/enum-int-codec.ts +67 -0
- package/src/templates/inferred-types.ts +7 -1
- package/src/templates/relations-block.ts +19 -11
- package/src/templates/routes-file.ts +29 -12
- package/src/templates/view-decl.ts +43 -5
- package/src/templates/zod-validators.ts +50 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-int-codec.d.ts","sourceRoot":"","sources":["../../src/templates/enum-int-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAwBxF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The int-backed `field.enum` codec emitter, shared by the two artifacts that can
|
|
3
|
+
* reference one: the entity's Drizzle table (`drizzle-schema.ts`) and any view-backed
|
|
4
|
+
* read model (`view-decl.ts` — a projection or an entity read-view).
|
|
5
|
+
*
|
|
6
|
+
* It lives in its own module because the codec is a MODULE-LOCAL const in whatever file
|
|
7
|
+
* declares the column, so every emitter that can produce such a column must be able to
|
|
8
|
+
* declare it too. While only the table template owned it, the view template emitted the
|
|
9
|
+
* call site and let the const name fall through to `imp(fnName@drizzle-orm/*-core)` —
|
|
10
|
+
* importing a member that package does not export, which `meta gen` reported as success
|
|
11
|
+
* and only `tsc` caught.
|
|
12
|
+
*
|
|
13
|
+
* The invariant this module exists to protect: the codec is declared ONCE PER MODULE, and
|
|
14
|
+
* it must precede every use. A write-through entity puts its table and its replica view in
|
|
15
|
+
* one file and both reference the same consts, so `entity-file.ts` renders the table first,
|
|
16
|
+
* collects the names it declared, and hands them to the view — which then references them
|
|
17
|
+
* instead of re-declaring. Two module-scope `const`s of one name is a JS parse error, and a
|
|
18
|
+
* declaration emitted after its use is a TDZ ReferenceError at import: both are worse than
|
|
19
|
+
* the missing-codec bug, because neither lets the module load at all.
|
|
20
|
+
*/
|
|
21
|
+
import { code, imp } from "ts-poet";
|
|
22
|
+
/**
|
|
23
|
+
* Render an int-backed `field.enum`'s Drizzle `customType` helper plus its two
|
|
24
|
+
* lookup maps.
|
|
25
|
+
*
|
|
26
|
+
* The codec lives HERE, in the column definition, so nothing downstream needs to
|
|
27
|
+
* know about it: `db.insert().values()` encodes on bind, a selected row decodes on
|
|
28
|
+
* read, and a filter comparison encodes because Drizzle binds through the column
|
|
29
|
+
* type. That is why this shape was chosen over a Zod write-transform plus a
|
|
30
|
+
* generated read-decode — TS's generated queries return raw Drizzle rows and have
|
|
31
|
+
* no decode seam, so the query-layer approach meant inventing one and wrapping
|
|
32
|
+
* every generated read. It is also the direct analogue of what the other four
|
|
33
|
+
* ports already do (EF Core `HasConversion`, OMDB `JdbcFieldCodec`, Exposed
|
|
34
|
+
* `customEnumeration`, Python `ObjectManager` coercion).
|
|
35
|
+
*
|
|
36
|
+
* `fromDriver` throws on an unmapped integer rather than returning undefined: a
|
|
37
|
+
* value outside the map means the DB holds data the model says is impossible
|
|
38
|
+
* (a hand-written INSERT, or a member removed without a migration), and silently
|
|
39
|
+
* yielding `undefined` for a non-nullable field would surface far from the cause.
|
|
40
|
+
*/
|
|
41
|
+
export function renderEnumIntCustomType(t, importModule) {
|
|
42
|
+
const customTypeSym = imp(`customType@${importModule}`);
|
|
43
|
+
const union = t.members.map((m) => JSON.stringify(m)).join(" | ");
|
|
44
|
+
const toEntries = t.members
|
|
45
|
+
.map((m) => `${JSON.stringify(m)}: ${t.intByMember[m]}`)
|
|
46
|
+
.join(", ");
|
|
47
|
+
const fromEntries = t.members
|
|
48
|
+
.map((m) => `${t.intByMember[m]}: ${JSON.stringify(m)}`)
|
|
49
|
+
.join(", ");
|
|
50
|
+
return code `
|
|
51
|
+
const ${t.toIntConstName} = { ${toEntries} } as const satisfies Record<${union}, number>;
|
|
52
|
+
const ${t.fromIntConstName}: Record<number, ${union}> = { ${fromEntries} };
|
|
53
|
+
const ${t.fnConstName} = ${customTypeSym}<{ data: ${union}; driverData: number }>({
|
|
54
|
+
dataType: () => ${JSON.stringify(t.dataType)},
|
|
55
|
+
toDriver: (value) => ${t.toIntConstName}[value],
|
|
56
|
+
fromDriver: (value) => {
|
|
57
|
+
const member = ${t.fromIntConstName}[value];
|
|
58
|
+
if (member === undefined) {
|
|
59
|
+
throw new Error(\`unmapped ${t.fnConstName} value: \${value}\`);
|
|
60
|
+
}
|
|
61
|
+
return member;
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
`;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=enum-int-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-int-codec.js","sourceRoot":"","sources":["../../src/templates/enum-int-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAa,MAAM,SAAS,CAAC;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CAAC,CAAoB,EAAE,YAAoB;IAChF,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,IAAI,CAAA;QACL,CAAC,CAAC,cAAc,QAAQ,SAAS,gCAAgC,KAAK;QACtE,CAAC,CAAC,gBAAgB,oBAAoB,KAAK,SAAS,WAAW;QAC/D,CAAC,CAAC,WAAW,MAAM,aAAa,YAAY,KAAK;oBACrC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;yBACrB,CAAC,CAAC,cAAc;;qBAEpB,CAAC,CAAC,gBAAgB;;mCAEJ,CAAC,CAAC,WAAW;;;;;CAK/C,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferred-types.d.ts","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"inferred-types.d.ts","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAkCtE,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGjF;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,OAAO,UAAQ,EACf,GAAG,CAAC,EAAE,aAAa,EACnB,OAAO,UAAQ,GACd,IAAI,CA8BN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAK9E;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAmE1F;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAmC7E;AA2FD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CA2BxF"}
|
|
@@ -14,6 +14,7 @@ import { stripPackage } from "@metaobjectsdev/metadata";
|
|
|
14
14
|
import { enumValues } from "../enum-meta.js";
|
|
15
15
|
import { sharedEnumZodConstName } from "./enums-file.js";
|
|
16
16
|
import { renderDocsFor } from "./jsdoc.js";
|
|
17
|
+
import { isTphReadNullTolerant } from "./zod-validators.js";
|
|
17
18
|
import { sharedEnumForField } from "../enum-shared.js";
|
|
18
19
|
import { sharedEnumImportSpecifier, providedEnumImportSpecifier } from "../enum-import.js";
|
|
19
20
|
import { fieldDeclaringPackage } from "../render-context.js";
|
|
@@ -338,7 +339,12 @@ export function renderValueObjectInterface(entity, ctx) {
|
|
|
338
339
|
const required = field.attr(FIELD_ATTR_REQUIRED) === true;
|
|
339
340
|
const optional = required ? "" : "?";
|
|
340
341
|
const tsType = valueObjectFieldType(entity, field, ctx);
|
|
341
|
-
|
|
342
|
+
// A TPH subtype's read schema accepts `null` for a column that is NULL on a
|
|
343
|
+
// sibling subtype's row; the declared type has to admit the same values, or
|
|
344
|
+
// `parse<Base>()` returns something this interface rejects. One predicate
|
|
345
|
+
// answers it for both emitters (ADR-style single source, see its docblock).
|
|
346
|
+
const nullable = isTphReadNullTolerant(entity, field) ? " | null" : "";
|
|
347
|
+
lines.push(code ` ${field.name}${optional}: ${tsType}${nullable};`);
|
|
342
348
|
}
|
|
343
349
|
// joinCode with "\n" interpolates each Code segment on its own line and
|
|
344
350
|
// keeps the imp() registrations intact so ts-poet hoists the imports.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferred-types.js","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inferred-types.js","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations-block.d.ts","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"relations-block.d.ts","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAyBxF"}
|
|
@@ -5,6 +5,7 @@ import { CARDINALITY_ONE, CARDINALITY_MANY } from "@metaobjectsdev/metadata";
|
|
|
5
5
|
import {} from "../render-context.js";
|
|
6
6
|
import { crossEntitySpecifier } from "../import-path.js";
|
|
7
7
|
import { effectivePackage } from "../docs-paths.js";
|
|
8
|
+
import { tphStorageName } from "./zod-validators.js";
|
|
8
9
|
/**
|
|
9
10
|
* Render the relations() block for one entity.
|
|
10
11
|
* Returns null if the entity has no relations to emit.
|
|
@@ -25,13 +26,13 @@ export function renderRelationsBlock(entity, ctx) {
|
|
|
25
26
|
paramParts.push("many");
|
|
26
27
|
const params = `{ ${paramParts.join(", ")} }`;
|
|
27
28
|
const thisEntityPackage = effectivePackage(entity);
|
|
28
|
-
const lines = entries.map((entry) => renderRelationEntry(entry, ctx, varName, thisEntityPackage));
|
|
29
|
+
const lines = entries.map((entry) => renderRelationEntry(entry, ctx, entity.name, varName, thisEntityPackage));
|
|
29
30
|
return code `export const ${relationsVarName} = ${relationsFn}(${varName}, (${params}) => ({
|
|
30
31
|
${joinCode(lines, { on: ",\n", trim: false })}
|
|
31
32
|
}));
|
|
32
33
|
`;
|
|
33
34
|
}
|
|
34
|
-
function renderRelationEntry(entry, ctx, thisVarName, thisEntityPackage) {
|
|
35
|
+
function renderRelationEntry(entry, ctx, thisEntityName, thisVarName, thisEntityPackage) {
|
|
35
36
|
// FR-018 M:N: the source navigates through the junction table, so the Drizzle
|
|
36
37
|
// many() targets the JUNCTION, not the target entity (the relational query API
|
|
37
38
|
// then hops junction → target via the junction's one() sides). The
|
|
@@ -42,11 +43,17 @@ function renderRelationEntry(entry, ctx, thisVarName, thisEntityPackage) {
|
|
|
42
43
|
const junctionVarSym = imp(`${ctx.collectionName(entry.junctionEntity)}@${junctionSpec}`);
|
|
43
44
|
return code ` ${entry.name}: many(${junctionVarSym})`;
|
|
44
45
|
}
|
|
45
|
-
//
|
|
46
|
-
const
|
|
47
|
-
const
|
|
46
|
+
// Bind to the table that stores the target's rows: a TPH subtype's module has no
|
|
47
|
+
// table const, so a navigation onto `Carrier` binds `parties` from `Party`.
|
|
48
|
+
const targetTableEntity = tphStorageName(entry.targetEntity, ctx.loadedRoot);
|
|
49
|
+
// A navigation onto this entity's OWN table (`Order.parent`, or a TPH base onto one of
|
|
50
|
+
// its subtypes) names the local const: importing it from this very module clashes with
|
|
51
|
+
// its declaration (TS2440). Otherwise imp() tracks and emits the cross-entity import.
|
|
52
|
+
const targetVarSym = targetTableEntity === thisEntityName
|
|
53
|
+
? thisVarName
|
|
54
|
+
: imp(`${ctx.collectionName(targetTableEntity)}@${crossEntitySpecifier(ctx.outputLayout, thisEntityPackage, ctx.packageOf.get(targetTableEntity), targetTableEntity, ctx.extStyle)}`);
|
|
48
55
|
if (entry.cardinality === CARDINALITY_ONE) {
|
|
49
|
-
const pkInfo = ctx.pkMap.get(
|
|
56
|
+
const pkInfo = ctx.pkMap.get(targetTableEntity);
|
|
50
57
|
const targetPkField = pkInfo?.fieldName ?? "id";
|
|
51
58
|
return code ` ${entry.name}: one(${targetVarSym}, { fields: [${thisVarName}.${entry.fkField ?? "id"}], references: [${targetVarSym}.${targetPkField}] })`;
|
|
52
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations-block.js","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,gEAAgE;AAEhE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAsB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"relations-block.js","sourceRoot":"","sources":["../../src/templates/relations-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-file.d.ts","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,OAAO,EAAiB,KAAK,QAAQ,EAAsD,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"routes-file.d.ts","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,OAAO,EAAiB,KAAK,QAAQ,EAAsD,MAAM,qBAAqB,CAAC;AAIvH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,aAAa,EAIlB,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC3B,MAAM,CAwMR"}
|
|
@@ -25,6 +25,7 @@ import { isProjection, isWriteThrough } from "../projection/projection-detector.
|
|
|
25
25
|
import { isTphDiscriminatorBase, tphPlan } from "./tph-discriminator.js";
|
|
26
26
|
import { authSeamJsDoc, exposeLine, intersectExpose, TPH_POLYMORPHIC_VERBS } from "../routes-expose.js";
|
|
27
27
|
import { effectivePackage } from "../docs-paths.js";
|
|
28
|
+
import { tphDiscriminatorPin, tphStorageObject } from "./zod-validators.js";
|
|
28
29
|
export function renderRoutesFile(entity, ctx,
|
|
29
30
|
// #348 — resolved by the generator from its `expose` option. undefined = all five verbs,
|
|
30
31
|
// which emits no `expose` key at all and so keeps output byte-identical for projects
|
|
@@ -235,10 +236,22 @@ function renderM2mMount(entry, source, ctx, fastifyVar) {
|
|
|
235
236
|
// SOURCE's package rather than the junction/target entity's own).
|
|
236
237
|
const sourcePkg = effectivePackage(source);
|
|
237
238
|
const junctionVarSym = imp(`${ctx.collectionName(entry.junctionEntity)}@${crossEntitySpecifier(ctx.outputLayout, sourcePkg, ctx.packageOf.get(entry.junctionEntity), entry.junctionEntity, ctx.extStyle)}`);
|
|
238
|
-
|
|
239
|
+
// An M:N onto a TPH subtype traverses into its discriminator BASE's table — the
|
|
240
|
+
// subtype has no table const, and the junction FK can only point at the base table —
|
|
241
|
+
// and filters the rows to the subtype, because a Broker id in that FK column is not a
|
|
242
|
+
// Carrier. Every other target binds to itself, and emits no filter.
|
|
243
|
+
const declaredTarget = ctx.loadedRoot.findObject(entry.targetEntity);
|
|
244
|
+
const target = declaredTarget === undefined ? undefined : tphStorageObject(declaredTarget);
|
|
245
|
+
const targetTableEntity = target?.name ?? entry.targetEntity;
|
|
246
|
+
const pin = declaredTarget === undefined ? undefined : tphDiscriminatorPin(declaredTarget);
|
|
247
|
+
// A self-join's target table IS the source table, which this file already imports from
|
|
248
|
+
// the entity module; a second import of the same binding is TS2300, and a SyntaxError
|
|
249
|
+
// when Node loads the module.
|
|
250
|
+
const targetVarSym = targetTableEntity === source.name
|
|
251
|
+
? ctx.collectionName(source.name)
|
|
252
|
+
: imp(`${ctx.collectionName(targetTableEntity)}@${crossEntitySpecifier(ctx.outputLayout, sourcePkg, ctx.packageOf.get(targetTableEntity), targetTableEntity, ctx.extStyle)}`);
|
|
239
253
|
const mountM2mRouteSym = imp("mountM2mRoute@@metaobjectsdev/runtime-ts/drizzle-fastify");
|
|
240
254
|
const junction = ctx.loadedRoot.findObject(entry.junctionEntity);
|
|
241
|
-
const target = ctx.loadedRoot.findObject(entry.targetEntity);
|
|
242
255
|
// fromPackage = source.package: this routes file is SOURCE's own module, never the
|
|
243
256
|
// junction's or the target's — see resolveJunctionColumn's doc comment (B1).
|
|
244
257
|
const sourceColumn = junction
|
|
@@ -248,8 +261,12 @@ function renderM2mMount(entry, source, ctx, fastifyVar) {
|
|
|
248
261
|
? resolveJunctionColumn(junction, entry.targetJoinField, ctx, sourcePkg)
|
|
249
262
|
: code `${JSON.stringify(entry.targetJoinField)}`;
|
|
250
263
|
const targetPkColumn = target
|
|
251
|
-
? resolveJunctionColumn(target, ctx.pkMap.get(
|
|
264
|
+
? resolveJunctionColumn(target, ctx.pkMap.get(targetTableEntity)?.fieldName ?? "id", ctx, sourcePkg)
|
|
252
265
|
: code `${JSON.stringify("id")}`;
|
|
266
|
+
const discriminatorLine = pin !== undefined && target !== undefined
|
|
267
|
+
? code `
|
|
268
|
+
targetDiscriminator: { column: ${resolveJunctionColumn(target, pin.fieldName, ctx, sourcePkg)}, value: ${JSON.stringify(pin.value)} },`
|
|
269
|
+
: "";
|
|
253
270
|
return code ` ${mountM2mRouteSym}({
|
|
254
271
|
fastify: ${fastifyVar},
|
|
255
272
|
path: ${source.name}.$path,
|
|
@@ -260,7 +277,7 @@ function renderM2mMount(entry, source, ctx, fastifyVar) {
|
|
|
260
277
|
sourceColumn: ${sourceColumn},
|
|
261
278
|
targetColumn: ${targetColumn},
|
|
262
279
|
targetPkColumn: ${targetPkColumn},
|
|
263
|
-
symmetric: ${entry.symmetric ? "true" : "false"}
|
|
280
|
+
symmetric: ${entry.symmetric ? "true" : "false"},${discriminatorLine}
|
|
264
281
|
});`;
|
|
265
282
|
}
|
|
266
283
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-file.js","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes-file.js","sourceRoot":"","sources":["../../src/templates/routes-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,14 @@ export interface ViewDeclOpts {
|
|
|
7
7
|
readonly columnNamingStrategy: ColumnNamingStrategy;
|
|
8
8
|
/** Drives the timestamp column TS type (Date vs string) in the view declaration. */
|
|
9
9
|
readonly timestampMode: "date" | "string";
|
|
10
|
+
/**
|
|
11
|
+
* Int-backed-enum codec const names ALREADY declared in the module this view lands in.
|
|
12
|
+
* A write-through entity's table and its replica view share one file, and both reference
|
|
13
|
+
* the same codecs — so the view references these by name and declares only what the table
|
|
14
|
+
* did not (a derived field's codec, which the write table omits). Absent = the view owns
|
|
15
|
+
* every codec it needs, which is the projection case.
|
|
16
|
+
*/
|
|
17
|
+
readonly declaredEnumIntCodecs?: ReadonlySet<string>;
|
|
10
18
|
/**
|
|
11
19
|
* ADR-0044/#228 — resolve a `field.object` / `field.map`'s `@objectRef` to the
|
|
12
20
|
* value object's EMITTED name (bare when unique in the run, package-qualified on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-decl.d.ts","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"view-decl.d.ts","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IACvF;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC7C;AAqED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,SAAS,EAAE;AAC5B;;;;;GAKG;AACH,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,GACjB,IAAI,CAyCN;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAiC9F"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { code, imp, joinCode } from "ts-poet";
|
|
10
10
|
import { FIELD_SUBTYPE_OBJECT, FIELD_ATTR_OBJECT_REF, } from "@metaobjectsdev/metadata";
|
|
11
11
|
import { mapColumnType } from "../column-mapper.js";
|
|
12
|
+
import { renderEnumIntCustomType } from "./enum-int-codec.js";
|
|
12
13
|
import { zodTypeFor } from "./field-meta.js";
|
|
13
14
|
import { columnExpr } from "../names.js";
|
|
14
15
|
/**
|
|
@@ -17,10 +18,22 @@ import { columnExpr } from "../names.js";
|
|
|
17
18
|
* so `db.select().from(<view>)` is typed. Honors `@dbColumnType`; `.existing()`
|
|
18
19
|
* views carry type + physical name only (no PK/default/notNull DDL modifiers).
|
|
19
20
|
*/
|
|
20
|
-
function viewColumnLine(f, opts
|
|
21
|
+
function viewColumnLine(f, opts,
|
|
22
|
+
/** Codecs this view needs, collected for the caller to DECLARE — see below. */
|
|
23
|
+
enumIntTypes) {
|
|
21
24
|
const { dialect, columnNamingStrategy, timestampMode } = opts;
|
|
22
25
|
const spec = mapColumnType(f, dialect, columnNamingStrategy, timestampMode);
|
|
23
|
-
|
|
26
|
+
// An int-backed field.enum's column function is a LOCAL generated const (the
|
|
27
|
+
// customType helper the caller emits into this same file), so it must not be
|
|
28
|
+
// imported from drizzle-orm/*-core like a built-in column type would be. Same
|
|
29
|
+
// rule the table template applies in `renderColumn`; a view reads the very same
|
|
30
|
+
// integer column and needs the very same decode on the way out.
|
|
31
|
+
if (spec.enumIntCustomType !== undefined) {
|
|
32
|
+
enumIntTypes.set(spec.enumIntCustomType.fnConstName, spec.enumIntCustomType);
|
|
33
|
+
}
|
|
34
|
+
const colSym = spec.enumIntCustomType !== undefined
|
|
35
|
+
? spec.enumIntCustomType.fnConstName
|
|
36
|
+
: imp(`${spec.fnName}@${spec.importModule}`);
|
|
24
37
|
const optsArg = spec.fnOptions && Object.keys(spec.fnOptions).length > 0
|
|
25
38
|
? `, ${JSON.stringify(spec.fnOptions)}`
|
|
26
39
|
: "";
|
|
@@ -80,7 +93,8 @@ viewName, viewVar, opts) {
|
|
|
80
93
|
const viewFn = opts.dialect === "postgres" ? "pgView" : "sqliteView";
|
|
81
94
|
const viewModule = opts.dialect === "postgres" ? "drizzle-orm/pg-core" : "drizzle-orm/sqlite-core";
|
|
82
95
|
const viewSym = imp(`${viewFn}@${viewModule}`);
|
|
83
|
-
const
|
|
96
|
+
const enumIntTypes = new Map();
|
|
97
|
+
const viewColumnLines = fields.map((f) => viewColumnLine(f, opts, enumIntTypes));
|
|
84
98
|
const viewNameExpr = typeof viewName === "string" ? code `${JSON.stringify(viewName)}` : viewName;
|
|
85
99
|
// @schema — a view lands in a schema exactly as a table does, and migrate qualifies the
|
|
86
100
|
// `CREATE VIEW` it emits. Fixing the table binding and leaving this one would be the more
|
|
@@ -94,7 +108,15 @@ viewName, viewVar, opts) {
|
|
|
94
108
|
const viewCall = viewSchemaExpr === undefined
|
|
95
109
|
? code `${viewSym}`
|
|
96
110
|
: code `${imp(`pgSchema@${viewModule}`)}(${viewSchemaExpr}).view`;
|
|
97
|
-
|
|
111
|
+
// Int-backed enum codecs are declared BEFORE the view that references them, sorted
|
|
112
|
+
// by const name so output is deterministic regardless of field order — the same
|
|
113
|
+
// contract the table template holds.
|
|
114
|
+
const alreadyDeclared = opts.declaredEnumIntCodecs;
|
|
115
|
+
const enumIntBlocks = [...enumIntTypes.values()]
|
|
116
|
+
.filter((t) => alreadyDeclared === undefined || !alreadyDeclared.has(t.fnConstName))
|
|
117
|
+
.sort((a, b) => a.fnConstName.localeCompare(b.fnConstName))
|
|
118
|
+
.map((t) => renderEnumIntCustomType(t, viewModule));
|
|
119
|
+
const viewBlock = code `
|
|
98
120
|
// View declaration — Drizzle uses this for typed SELECT queries.
|
|
99
121
|
// The SQL view is created/managed by migrate-ts; .existing() tells Drizzle
|
|
100
122
|
// not to attempt DDL for this declaration.
|
|
@@ -102,6 +124,9 @@ export const ${viewVar} = ${viewCall}(${viewNameExpr}, {
|
|
|
102
124
|
${joinCode(viewColumnLines, { on: ",\n" })}
|
|
103
125
|
}).existing();
|
|
104
126
|
`;
|
|
127
|
+
return enumIntBlocks.length === 0
|
|
128
|
+
? viewBlock
|
|
129
|
+
: joinCode([...enumIntBlocks, viewBlock], { on: "\n" });
|
|
105
130
|
}
|
|
106
131
|
/**
|
|
107
132
|
* The Zod object body for a view-backed read model — one `field: z.<type>[.nullable()]`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-decl.js","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,oFAAoF;AACpF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAElF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AACzD,OAAO,EACW,oBAAoB,EAAE,qBAAqB,GAC5D,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"view-decl.js","sourceRoot":"","sources":["../../src/templates/view-decl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Code } from "ts-poet";
|
|
2
|
-
import { MetaObject } from "@metaobjectsdev/metadata";
|
|
2
|
+
import { MetaObject, MetaField, type MetaRoot } from "@metaobjectsdev/metadata";
|
|
3
3
|
import { type RenderContext } from "../render-context.js";
|
|
4
4
|
/**
|
|
5
5
|
* FR-017 Tier 1 — when this object is a TPH subtype (@discriminatorValue set
|
|
@@ -23,6 +23,20 @@ export declare function tphDiscriminatorPin(obj: MetaObject): {
|
|
|
23
23
|
* is the base.
|
|
24
24
|
*/
|
|
25
25
|
export declare function tphDiscriminatorBase(obj: MetaObject): MetaObject | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* The object whose TABLE stores `obj`'s rows: the discriminator base for anything beneath
|
|
28
|
+
* a TPH base — a concrete subtype or an abstract level in between — otherwise `obj`.
|
|
29
|
+
*
|
|
30
|
+
* Neither a subtype's module nor an abstract level's emits a table const, so anything
|
|
31
|
+
* that binds to "the other side" of a reference or relationship — an FK's `.references()`,
|
|
32
|
+
* a `relations()` entry, an M:N traversal's target table — must bind here and never to the
|
|
33
|
+
* target's own name. Binding to the subtype imported `carriers` from a `Carrier.ts` that
|
|
34
|
+
* does not export it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function tphStorageObject(obj: MetaObject): MetaObject;
|
|
37
|
+
/** {@link tphStorageObject} by entity name, for the name-keyed relation map. A name the
|
|
38
|
+
* root does not resolve is returned unchanged. */
|
|
39
|
+
export declare function tphStorageName(entityName: string, root: MetaRoot): string;
|
|
26
40
|
/**
|
|
27
41
|
* True when this object itself DECLARES `@discriminator` — the level of a TPH hierarchy
|
|
28
42
|
* that owns the discriminator, whether or not any concrete subtype extends it yet.
|
|
@@ -42,6 +56,23 @@ export declare function isTphSubtype(obj: MetaObject): boolean;
|
|
|
42
56
|
* a plain entity has nothing to preserve, so both are omitted. Resolving
|
|
43
57
|
* (ADR-0039): honors an @autoSet inherited via extends. */
|
|
44
58
|
export declare function hasAutoSetFields(obj: MetaObject): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Is this field NULL-tolerant in a TPH subtype's READ shape?
|
|
61
|
+
*
|
|
62
|
+
* A TPH subtype shares one physical table with its siblings, so a column only one
|
|
63
|
+
* subtype declares is NULL on every other subtype's row, and a non-`@required` column
|
|
64
|
+
* of this subtype's own is NULL when unset. Either way the value read back is `null`,
|
|
65
|
+
* not `undefined`. The PRIMARY KEY is the exception — it is the shared base table's
|
|
66
|
+
* key and is present on every row.
|
|
67
|
+
*
|
|
68
|
+
* ONE predicate, because TWO emitters answer this question about the same field: the
|
|
69
|
+
* Zod read schema (`renderTphSubtypeReadSchema`) and the declared TS type
|
|
70
|
+
* (`renderValueObjectInterface`). They answered it differently, so the value
|
|
71
|
+
* `parse<Base>()` returns was not assignable to the base union and the generated
|
|
72
|
+
* module did not compile (TS2322). A second answer to one question is the defect;
|
|
73
|
+
* keeping the two call sites pointed here is the fix.
|
|
74
|
+
*/
|
|
75
|
+
export declare function isTphReadNullTolerant(obj: MetaObject, field: MetaField): boolean;
|
|
45
76
|
/**
|
|
46
77
|
* FR-017 Tier 2 — the per-subtype FULL read schema `<Sub>Schema`. Unlike the
|
|
47
78
|
* insert schema, this includes every effective field (PK included) so a raw DB
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-validators.d.ts","sourceRoot":"","sources":["../../src/templates/zod-validators.ts"],"names":[],"mappings":"AAWA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"zod-validators.d.ts","sourceRoot":"","sources":["../../src/templates/zod-validators.ts"],"names":[],"mappings":"AAWA,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAgB,MAAM,0BAA0B,CAAC;AA2B9F,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOjF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAQrG;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAG5D;AAED;mDACmD;AACnD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAEjE;AAqBD;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAErD;AAED;;;;4DAI4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAMzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAIhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CA6BrF;AAED;;2EAE2E;AAC3E,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAOnE;AA2DD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAyDjF;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB;sEACkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;oDACgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,EAAE,CA0BtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAgCtE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAqI9E"}
|
|
@@ -54,6 +54,27 @@ export function tphDiscriminatorPin(obj) {
|
|
|
54
54
|
export function tphDiscriminatorBase(obj) {
|
|
55
55
|
return tphDiscriminatorLevel(obj)?.base;
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* The object whose TABLE stores `obj`'s rows: the discriminator base for anything beneath
|
|
59
|
+
* a TPH base — a concrete subtype or an abstract level in between — otherwise `obj`.
|
|
60
|
+
*
|
|
61
|
+
* Neither a subtype's module nor an abstract level's emits a table const, so anything
|
|
62
|
+
* that binds to "the other side" of a reference or relationship — an FK's `.references()`,
|
|
63
|
+
* a `relations()` entry, an M:N traversal's target table — must bind here and never to the
|
|
64
|
+
* target's own name. Binding to the subtype imported `carriers` from a `Carrier.ts` that
|
|
65
|
+
* does not export it.
|
|
66
|
+
*/
|
|
67
|
+
export function tphStorageObject(obj) {
|
|
68
|
+
if (declaresTphDiscriminator(obj))
|
|
69
|
+
return obj;
|
|
70
|
+
return tphDiscriminatorBase(obj) ?? obj;
|
|
71
|
+
}
|
|
72
|
+
/** {@link tphStorageObject} by entity name, for the name-keyed relation map. A name the
|
|
73
|
+
* root does not resolve is returned unchanged. */
|
|
74
|
+
export function tphStorageName(entityName, root) {
|
|
75
|
+
const obj = root.findObject(entityName);
|
|
76
|
+
return obj === undefined ? entityName : tphStorageObject(obj).name;
|
|
77
|
+
}
|
|
57
78
|
/**
|
|
58
79
|
* True when this object itself DECLARES `@discriminator` — the level of a TPH hierarchy
|
|
59
80
|
* that owns the discriminator, whether or not any concrete subtype extends it yet.
|
|
@@ -102,6 +123,29 @@ export function hasAutoSetFields(obj) {
|
|
|
102
123
|
}
|
|
103
124
|
return false;
|
|
104
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Is this field NULL-tolerant in a TPH subtype's READ shape?
|
|
128
|
+
*
|
|
129
|
+
* A TPH subtype shares one physical table with its siblings, so a column only one
|
|
130
|
+
* subtype declares is NULL on every other subtype's row, and a non-`@required` column
|
|
131
|
+
* of this subtype's own is NULL when unset. Either way the value read back is `null`,
|
|
132
|
+
* not `undefined`. The PRIMARY KEY is the exception — it is the shared base table's
|
|
133
|
+
* key and is present on every row.
|
|
134
|
+
*
|
|
135
|
+
* ONE predicate, because TWO emitters answer this question about the same field: the
|
|
136
|
+
* Zod read schema (`renderTphSubtypeReadSchema`) and the declared TS type
|
|
137
|
+
* (`renderValueObjectInterface`). They answered it differently, so the value
|
|
138
|
+
* `parse<Base>()` returns was not assignable to the base union and the generated
|
|
139
|
+
* module did not compile (TS2322). A second answer to one question is the defect;
|
|
140
|
+
* keeping the two call sites pointed here is the fix.
|
|
141
|
+
*/
|
|
142
|
+
export function isTphReadNullTolerant(obj, field) {
|
|
143
|
+
if (!isTphSubtype(obj))
|
|
144
|
+
return false;
|
|
145
|
+
if (!fieldWillBeOptional(field))
|
|
146
|
+
return false;
|
|
147
|
+
return !primaryIdentityFieldNames(obj).includes(field.name);
|
|
148
|
+
}
|
|
105
149
|
/**
|
|
106
150
|
* FR-017 Tier 2 — the per-subtype FULL read schema `<Sub>Schema`. Unlike the
|
|
107
151
|
* insert schema, this includes every effective field (PK included) so a raw DB
|
|
@@ -124,9 +168,11 @@ export function renderTphSubtypeReadSchema(obj, ctx) {
|
|
|
124
168
|
}
|
|
125
169
|
const expr = zodFieldExpr(child, obj, ctx);
|
|
126
170
|
// zodFieldExpr already appends `.optional()` for non-required fields; add
|
|
127
|
-
// `.nullable()` on top so a NULL column value
|
|
128
|
-
//
|
|
129
|
-
fieldLines.push(
|
|
171
|
+
// `.nullable()` on top so a NULL column value parses cleanly. The declared
|
|
172
|
+
// interface widens the SAME fields — see isTphReadNullTolerant.
|
|
173
|
+
fieldLines.push(isTphReadNullTolerant(obj, child)
|
|
174
|
+
? code ` ${child.name}: ${expr}.nullable()`
|
|
175
|
+
: code ` ${child.name}: ${expr}`);
|
|
130
176
|
}
|
|
131
177
|
const objName = ctx ? ctx.valueObjectEmittedName(obj) : obj.name;
|
|
132
178
|
const docs = renderDocsFor(obj);
|