@metaobjectsdev/codegen-ts 0.16.0 → 0.17.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/column-mapper.d.ts +10 -0
- package/dist/column-mapper.d.ts.map +1 -1
- package/dist/column-mapper.js +21 -2
- package/dist/column-mapper.js.map +1 -1
- package/dist/naming.d.ts +4 -0
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +6 -0
- package/dist/naming.js.map +1 -1
- package/dist/projection/build-projection-views.d.ts +5 -1
- package/dist/projection/build-projection-views.d.ts.map +1 -1
- package/dist/projection/build-projection-views.js +165 -47
- package/dist/projection/build-projection-views.js.map +1 -1
- package/dist/projection/extract-view-spec.d.ts +8 -1
- package/dist/projection/extract-view-spec.d.ts.map +1 -1
- package/dist/projection/extract-view-spec.js +430 -29
- package/dist/projection/extract-view-spec.js.map +1 -1
- package/dist/projection/view-ddl-emit.d.ts.map +1 -1
- package/dist/projection/view-ddl-emit.js +142 -25
- package/dist/projection/view-ddl-emit.js.map +1 -1
- package/dist/projection/view-spec.d.ts +101 -3
- package/dist/projection/view-spec.d.ts.map +1 -1
- package/dist/templates/drizzle-schema.d.ts.map +1 -1
- package/dist/templates/drizzle-schema.js +9 -0
- 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 +39 -3
- package/dist/templates/entity-file.js.map +1 -1
- package/dist/templates/inferred-types.d.ts +1 -1
- package/dist/templates/inferred-types.d.ts.map +1 -1
- package/dist/templates/inferred-types.js +13 -1
- package/dist/templates/inferred-types.js.map +1 -1
- package/dist/templates/projection-decl.d.ts.map +1 -1
- package/dist/templates/projection-decl.js +9 -70
- package/dist/templates/projection-decl.js.map +1 -1
- package/dist/templates/queries-file.d.ts.map +1 -1
- package/dist/templates/queries-file.js +117 -43
- package/dist/templates/queries-file.js.map +1 -1
- package/dist/templates/queries.d.ts +21 -4
- package/dist/templates/queries.d.ts.map +1 -1
- package/dist/templates/queries.js +48 -12
- package/dist/templates/queries.js.map +1 -1
- package/dist/templates/view-decl.d.ts +28 -0
- package/dist/templates/view-decl.d.ts.map +1 -0
- package/dist/templates/view-decl.js +107 -0
- package/dist/templates/view-decl.js.map +1 -0
- package/dist/templates/zod-validators.d.ts +6 -0
- package/dist/templates/zod-validators.d.ts.map +1 -1
- package/dist/templates/zod-validators.js +53 -7
- package/dist/templates/zod-validators.js.map +1 -1
- package/package.json +6 -6
- package/src/column-mapper.ts +26 -1
- package/src/naming.ts +7 -0
- package/src/projection/build-projection-views.ts +211 -50
- package/src/projection/extract-view-spec.ts +468 -29
- package/src/projection/view-ddl-emit.ts +158 -24
- package/src/projection/view-spec.ts +104 -3
- package/src/reference/entity.ts +11 -1
- package/src/reference/queries.ts +4 -1
- package/src/templates/drizzle-schema.ts +7 -0
- package/src/templates/entity-file.ts +46 -3
- package/src/templates/inferred-types.ts +18 -1
- package/src/templates/projection-decl.ts +8 -74
- package/src/templates/queries-file.ts +133 -48
- package/src/templates/queries.ts +50 -11
- package/src/templates/view-decl.ts +128 -0
- package/src/templates/zod-validators.ts +54 -9
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// isProjection(entity) → renderProjectionDecl (read-only: view declaration + Zod + filter sections)
|
|
6
6
|
// !hasWritableRdbSource(entity) → renderValueObjectFile (in-memory / transit shape: interface + Zod schema)
|
|
7
7
|
// vanilla / write-through entity → Drizzle table path
|
|
8
|
-
import { joinCode } from "ts-poet";
|
|
8
|
+
import { code, imp, joinCode } from "ts-poet";
|
|
9
9
|
import { renderDrizzleSchema } from "./drizzle-schema.js";
|
|
10
10
|
import { renderInferredTypes, renderEnumTypeAliases } from "./inferred-types.js";
|
|
11
11
|
import { renderZodValidators, isTphSubtype } from "./zod-validators.js";
|
|
@@ -14,8 +14,13 @@ import { renderFilterAllowlist, renderSortAllowlist } from "./filter-allowlist.j
|
|
|
14
14
|
import { renderFilterType } from "./filter-type.js";
|
|
15
15
|
import { renderTphDiscriminatorUnion, isTphDiscriminatorBase } from "./tph-discriminator.js";
|
|
16
16
|
import { GENERATED_HEADER } from "../constants.js";
|
|
17
|
-
import { isProjection } from "../projection/projection-detector.js";
|
|
17
|
+
import { isProjection, isWriteThrough } from "../projection/projection-detector.js";
|
|
18
18
|
import { renderProjectionDecl } from "./projection-decl.js";
|
|
19
|
+
import { projectionViewName } from "../projection/extract-view-spec.js";
|
|
20
|
+
import { renderExistingViewDecl, renderViewReadZodObject } from "./view-decl.js";
|
|
21
|
+
import { renderDocsFor } from "./jsdoc.js";
|
|
22
|
+
import { valueObjectModuleSpecifier } from "../import-path.js";
|
|
23
|
+
import { stripPackage } from "@metaobjectsdev/metadata";
|
|
19
24
|
import { hasWritableRdbSource } from "../source-detect.js";
|
|
20
25
|
import { renderValueObjectFile } from "./value-object-file.js";
|
|
21
26
|
import { isAbstract } from "../instance-artifacts.js";
|
|
@@ -74,9 +79,40 @@ export function renderEntityFile(entity, ctx, opts) {
|
|
|
74
79
|
// bare `<Base>` type — so the inferred Drizzle row type is emitted as
|
|
75
80
|
// `<Base>Row` to avoid a duplicate `export type <Base>`.
|
|
76
81
|
const tphBase = tphBlock !== null && isTphDiscriminatorBase(entity, ctx.loadedRoot);
|
|
82
|
+
// #214 — a write-through entity read-view (FR-024 §7): reads route to the replica
|
|
83
|
+
// VIEW, so the entity file additionally declares the `.existing()` view (carrying the
|
|
84
|
+
// derived fields the write table omits, #213) and a read schema `<Entity>Schema`
|
|
85
|
+
// whose `z.infer` IS the read type <Entity> (dialect-agnostic — a Drizzle view is not
|
|
86
|
+
// a Table, so InferSelectModel/`$inferSelect` don't uniformly apply; the Zod schema's
|
|
87
|
+
// nullability mirrors the view columns exactly like a projection). The write table +
|
|
88
|
+
// Insert/Update stay derived-free. `.existing()` is a runtime-target Drizzle binding,
|
|
89
|
+
// and this path only runs in a runtime target (contract-only/non-writable returned above).
|
|
90
|
+
// A TPH discriminator base owns `export type <Base>` via its discriminated-union block,
|
|
91
|
+
// so it must NOT also emit the view-schema read type (that would be a duplicate-identifier
|
|
92
|
+
// compile error). A base+write-through combo keeps the TPH polymorphic read path (reads
|
|
93
|
+
// the base table); routing its reads through a replica view is a documented non-goal.
|
|
94
|
+
const writeThrough = isWriteThrough(entity) && !tphBase;
|
|
95
|
+
const viewSections = [];
|
|
96
|
+
if (writeThrough) {
|
|
97
|
+
const camel = entity.name.charAt(0).toLowerCase() + entity.name.slice(1);
|
|
98
|
+
const fields = entity.fields();
|
|
99
|
+
const voModule = (refBase) => valueObjectModuleSpecifier(stripPackage(refBase), ctx.packageOf, entity.package, ctx.outputLayout, ctx.extStyle);
|
|
100
|
+
const viewOpts = {
|
|
101
|
+
dialect: ctx.dialect, columnNamingStrategy: ctx.columnNamingStrategy, timestampMode: ctx.timestampMode, voModule,
|
|
102
|
+
};
|
|
103
|
+
const z = imp("z@zod");
|
|
104
|
+
const docs = renderDocsFor(entity);
|
|
105
|
+
const docsPrefix = docs ? `${docs}\n` : "";
|
|
106
|
+
viewSections.push(renderExistingViewDecl(fields, projectionViewName(entity, ctx.columnNamingStrategy), `${camel}View`, viewOpts), code `
|
|
107
|
+
export const ${entity.name}Schema = ${renderViewReadZodObject(fields, viewOpts)};
|
|
108
|
+
`, code `
|
|
109
|
+
${docsPrefix}export type ${entity.name} = ${z}.infer<typeof ${entity.name}Schema>;
|
|
110
|
+
`);
|
|
111
|
+
}
|
|
77
112
|
const sections = [
|
|
78
113
|
renderDrizzleSchema(entity, ctx),
|
|
79
|
-
|
|
114
|
+
...viewSections,
|
|
115
|
+
renderInferredTypes(entity, tphBase, ctx, writeThrough /* skipRow — read type is the view schema */),
|
|
80
116
|
...(enumAliases !== null ? [enumAliases] : []),
|
|
81
117
|
renderZodValidators(entity, ctx),
|
|
82
118
|
renderEntityConstants(entity, ctx.apiPrefix),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,0EAA0E;AAC1E,EAAE;AACF,YAAY;AACZ,oHAAoH;AACpH,mHAAmH;AACnH,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import type { RenderContext } from "../render-context.js";
|
|
|
10
10
|
* to avoid a duplicate `export type <Base>`. Insert/Update keep their names
|
|
11
11
|
* (no collision); they describe the physical TPH table row shape.
|
|
12
12
|
*/
|
|
13
|
-
export declare function renderInferredTypes(entity: MetaObject, tphBase?: boolean, ctx?: RenderContext): Code;
|
|
13
|
+
export declare function renderInferredTypes(entity: MetaObject, tphBase?: boolean, ctx?: RenderContext, skipRow?: boolean): Code;
|
|
14
14
|
/**
|
|
15
15
|
* The string-literal-union type-alias name for a `field.enum` field — the SINGLE
|
|
16
16
|
* source of truth for enum-union naming (reused by the entity inferred-types
|
|
@@ -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;AAgCtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,
|
|
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;AAgCtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;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,CAiC1F;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CA6B7E;AA8ED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAkBxF"}
|
|
@@ -24,7 +24,7 @@ import { sharedEnumImportSpecifier, providedEnumImportSpecifier } from "../enum-
|
|
|
24
24
|
* to avoid a duplicate `export type <Base>`. Insert/Update keep their names
|
|
25
25
|
* (no collision); they describe the physical TPH table row shape.
|
|
26
26
|
*/
|
|
27
|
-
export function renderInferredTypes(entity, tphBase = false, ctx) {
|
|
27
|
+
export function renderInferredTypes(entity, tphBase = false, ctx, skipRow = false) {
|
|
28
28
|
// The inferred Row/Insert types reference the Drizzle table var, so they must
|
|
29
29
|
// resolve to the SAME (possibly overridden) collection name the schema emits.
|
|
30
30
|
// ctx is optional for bare unit-test calls — those fall back to the default
|
|
@@ -37,6 +37,18 @@ export function renderInferredTypes(entity, tphBase = false, ctx) {
|
|
|
37
37
|
const docs = renderDocsFor(entity);
|
|
38
38
|
const docsPrefix = docs ? `${docs}\n` : "";
|
|
39
39
|
const rowName = tphBase ? `${entity.name}Row` : entity.name;
|
|
40
|
+
// #214 — a write-through entity read-view routes READS to the replica view, so the
|
|
41
|
+
// read row type <Entity> is emitted from the VIEW's read schema (z.infer, carrying
|
|
42
|
+
// the derived fields) by the entity-file composer, NOT here. `skipRow` suppresses
|
|
43
|
+
// the table-inferred Row so there is no duplicate `export type <Entity>` (selectSym
|
|
44
|
+
// then goes unreferenced and ts-poet drops its import). Insert/Update always stay
|
|
45
|
+
// inferred from the write TABLE (derived-free, #213).
|
|
46
|
+
if (skipRow) {
|
|
47
|
+
return code `
|
|
48
|
+
export type ${entity.name}Insert = ${insertSym}<typeof ${varName}>;
|
|
49
|
+
export type ${entity.name}Update = Partial<${entity.name}Insert>;
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
40
52
|
return code `
|
|
41
53
|
${docsPrefix}export type ${rowName} = ${selectSym}<typeof ${varName}>;
|
|
42
54
|
export type ${entity.name}Insert = ${insertSym}<typeof ${varName}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferred-types.js","sourceRoot":"","sources":["../../src/templates/inferred-types.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gDAAgD;AAChD,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAE7E,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEzD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAG3F;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,
|
|
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":"projection-decl.d.ts","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"AAUA,OAAO,EACM,UAAU,EAAE,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"projection-decl.d.ts","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"AAUA,OAAO,EACM,UAAU,EAAE,KAAK,QAAQ,EACrC,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAW1D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,kBAAkB,GACvB,MAAM,CAuFR"}
|
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
// - Zod Insert/Update schemas
|
|
8
8
|
// - Insert/Update types
|
|
9
9
|
import { code, imp, joinCode } from "ts-poet";
|
|
10
|
-
import { MetaField, MetaObject,
|
|
10
|
+
import { MetaField, MetaObject, } from "@metaobjectsdev/metadata";
|
|
11
11
|
import { projectionViewName } from "../projection/extract-view-spec.js";
|
|
12
12
|
import { columnNameFromField, toSnakeCase, pluralize } from "../naming.js";
|
|
13
13
|
import { GENERATED_HEADER } from "../constants.js";
|
|
14
|
-
import { mapColumnType } from "../column-mapper.js";
|
|
15
14
|
import { valueObjectModuleSpecifier } from "../import-path.js";
|
|
16
15
|
import { renderFilterAllowlist, renderSortAllowlist } from "./filter-allowlist.js";
|
|
17
16
|
import { renderFilterType } from "./filter-type.js";
|
|
18
|
-
import { inferViewKind,
|
|
17
|
+
import { inferViewKind, currencyMetaFor, labelFor } from "./field-meta.js";
|
|
18
|
+
import { renderExistingViewDecl, renderViewReadZodObject } from "./view-decl.js";
|
|
19
19
|
// ---------------------------------------------------------------------------
|
|
20
20
|
// Helpers
|
|
21
21
|
// ---------------------------------------------------------------------------
|
|
@@ -53,15 +53,6 @@ export function renderProjectionDecl(projection, root, opts) {
|
|
|
53
53
|
const voModule = (refBase) => ctx
|
|
54
54
|
? valueObjectModuleSpecifier(refBase, ctx.packageOf, projection.package, ctx.outputLayout, ctx.extStyle)
|
|
55
55
|
: `./${refBase}.js`;
|
|
56
|
-
const objectRefOf = (f) => {
|
|
57
|
-
if (f.subType !== FIELD_SUBTYPE_OBJECT)
|
|
58
|
-
return undefined;
|
|
59
|
-
const ref = f.attr(FIELD_ATTR_OBJECT_REF);
|
|
60
|
-
return typeof ref === "string" && ref.length > 0 ? stripPackage(ref) : undefined;
|
|
61
|
-
};
|
|
62
|
-
const viewFn = dialect === "postgres" ? "pgView" : "sqliteView";
|
|
63
|
-
const viewModule = dialect === "postgres" ? "drizzle-orm/pg-core" : "drizzle-orm/sqlite-core";
|
|
64
|
-
const viewSym = imp(`${viewFn}@${viewModule}`);
|
|
65
56
|
const z = imp("z@zod");
|
|
66
57
|
// Read-model generation needs only the view name — NOT the join/DDL
|
|
67
58
|
// resolution. Deriving it directly (instead of via extractViewSpec) lets a
|
|
@@ -86,53 +77,6 @@ export function renderProjectionDecl(projection, root, opts) {
|
|
|
86
77
|
// inherited fields are not duplicated.
|
|
87
78
|
for (const f of projection.ownFields())
|
|
88
79
|
allFields.push(f);
|
|
89
|
-
// A field.object passthrough carries the value-object's Zod schema (so the
|
|
90
|
-
// view's read schema + inferred type expose the VO shape, not z.unknown()).
|
|
91
|
-
const zodLines = allFields.map((f) => {
|
|
92
|
-
// The read schema's nullability MUST mirror the view column's: a column that
|
|
93
|
-
// is not `.notNull()` infers `T | null` in Drizzle's SELECT type, so the Zod
|
|
94
|
-
// read type (and thus the generated query's return type) must be `.nullable()`
|
|
95
|
-
// too — otherwise `db.select().from(view)` yields `T | null` into a non-null
|
|
96
|
-
// `<Name>` field and the generated query fails to compile under strict TS.
|
|
97
|
-
const nullable = mapColumnType(f, dialect, columnNamingStrategy, timestampMode)
|
|
98
|
-
.modifiers.includes(".notNull()")
|
|
99
|
-
? ""
|
|
100
|
-
: ".nullable()";
|
|
101
|
-
const refBase = objectRefOf(f);
|
|
102
|
-
if (refBase) {
|
|
103
|
-
const schemaSym = imp(`${refBase}InsertSchema@${voModule(refBase)}`);
|
|
104
|
-
const base = f.resolvedIsArray()
|
|
105
|
-
? code `${z}.array(${schemaSym})`
|
|
106
|
-
: code `${schemaSym}`;
|
|
107
|
-
return code ` ${f.name}: ${base}${nullable}`;
|
|
108
|
-
}
|
|
109
|
-
return code ` ${f.name}: ${z}.${zodTypeFor(f).replace(/^z\./, "")}${nullable}`;
|
|
110
|
-
});
|
|
111
|
-
// Typed view column map for the Drizzle `.existing()` declaration — keyed by
|
|
112
|
-
// projection field name, valued by the column builder for the (renamed)
|
|
113
|
-
// physical view column, so `db.select().from(<view>)` is typed. Honors
|
|
114
|
-
// `@dbColumnType` (e.g. a passthrough of a jsonb column). `.existing()` views
|
|
115
|
-
// carry type + physical name only — no PK/default/notNull modifiers.
|
|
116
|
-
const viewColumnLines = allFields.map((f) => {
|
|
117
|
-
const spec = mapColumnType(f, dialect, columnNamingStrategy, timestampMode);
|
|
118
|
-
const colSym = imp(`${spec.fnName}@${spec.importModule}`);
|
|
119
|
-
const optsArg = spec.fnOptions && Object.keys(spec.fnOptions).length > 0
|
|
120
|
-
? `, ${JSON.stringify(spec.fnOptions)}`
|
|
121
|
-
: "";
|
|
122
|
-
// Of the table modifiers, only `.notNull()` carries to an existing view (it
|
|
123
|
-
// shapes the SELECT type); `.primaryKey()`/`.default()`/`.references()` are
|
|
124
|
-
// table-DDL concerns and invalid on a `.existing()` view declaration.
|
|
125
|
-
const notNull = spec.modifiers.includes(".notNull()") ? ".notNull()" : "";
|
|
126
|
-
// Narrow a jsonb passthrough to its value-object type — `.$type<VO>()` —
|
|
127
|
-
// mirroring the entity column, so the read row is typed (not `unknown`).
|
|
128
|
-
let dollarType = "";
|
|
129
|
-
const dtr = spec.dollarTypeRef;
|
|
130
|
-
if (dtr?.kind === "objectRef") {
|
|
131
|
-
const voTypeSym = imp(`${dtr.name}@${voModule(dtr.name)}`);
|
|
132
|
-
dollarType = dtr.array ? code `.$type<${voTypeSym}[]>()` : code `.$type<${voTypeSym}>()`;
|
|
133
|
-
}
|
|
134
|
-
return code ` ${f.name}: ${colSym}(${JSON.stringify(spec.dbName)}${optsArg})${dollarType}${notNull}`;
|
|
135
|
-
});
|
|
136
80
|
const constFieldLines = allFields.map((f) => {
|
|
137
81
|
const dbCol = columnNameFromField(f.name, columnNamingStrategy);
|
|
138
82
|
const view = inferViewKind(f);
|
|
@@ -149,19 +93,14 @@ export function renderProjectionDecl(projection, root, opts) {
|
|
|
149
93
|
const path = pathFromProjectionName(projName);
|
|
150
94
|
const sections = [
|
|
151
95
|
...(includeViewDecl
|
|
152
|
-
? [
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
// not to attempt DDL for this declaration.
|
|
156
|
-
export const ${camelName}View = ${viewSym}(${JSON.stringify(viewName)}, {
|
|
157
|
-
${joinCode(viewColumnLines, { on: ",\n" })}
|
|
158
|
-
}).existing();
|
|
159
|
-
`]
|
|
96
|
+
? [renderExistingViewDecl(allFields, viewName, `${camelName}View`, {
|
|
97
|
+
dialect, columnNamingStrategy, timestampMode, voModule,
|
|
98
|
+
})]
|
|
160
99
|
: []),
|
|
161
100
|
code `
|
|
162
|
-
export const ${projName}Schema = ${
|
|
163
|
-
|
|
164
|
-
});
|
|
101
|
+
export const ${projName}Schema = ${renderViewReadZodObject(allFields, {
|
|
102
|
+
dialect, columnNamingStrategy, timestampMode, voModule,
|
|
103
|
+
})};
|
|
165
104
|
`,
|
|
166
105
|
code `
|
|
167
106
|
export type ${projName} = ${z}.infer<typeof ${projName}Schema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection-decl.js","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qEAAqE;AACrE,EAAE;AACF,uDAAuD;AACvD,oBAAoB;AACpB,4CAA4C;AAC5C,gCAAgC;AAChC,0BAA0B;AAE1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AACzD,OAAO,EACL,SAAS,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"projection-decl.js","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-file.d.ts","sourceRoot":"","sources":["../../src/templates/queries-file.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EAGX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"queries-file.d.ts","sourceRoot":"","sources":["../../src/templates/queries-file.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EAGX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyC1D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAqF7E"}
|
|
@@ -4,11 +4,32 @@ import { code, joinCode, imp } from "ts-poet";
|
|
|
4
4
|
import { MetaObject, OBJECT_ATTR_DISCRIMINATOR, OBJECT_ATTR_DISCRIMINATOR_VALUE, } from "@metaobjectsdev/metadata";
|
|
5
5
|
import {} from "../render-context.js";
|
|
6
6
|
import { entityModuleSpecifier } from "../import-path.js";
|
|
7
|
-
import { renderFindByIdFn, renderListFn, renderCreateFn, renderUpdateFn, renderDeleteByIdFn, renderReverseFinderFns, reverseFksFor, getPkInfo, } from "./queries.js";
|
|
8
|
-
import { pluralize, findByIdFnName, listFnName } from "../naming.js";
|
|
7
|
+
import { renderFindByIdFn, renderListFn, renderCreateFn, renderInsertPreservingFn, renderUpdateFn, renderDeleteByIdFn, renderReverseFinderFns, reverseFksFor, getPkInfo, getPkFields, } from "./queries.js";
|
|
8
|
+
import { pluralize, findByIdFnName, listFnName, createFnName, insertPreservingFnName, updateFnName } from "../naming.js";
|
|
9
9
|
import { GENERATED_HEADER } from "../constants.js";
|
|
10
10
|
import { isTphDiscriminatorBase, tphConcreteSubtypes } from "./tph-discriminator.js";
|
|
11
|
-
import { isProjection } from "../projection/projection-detector.js";
|
|
11
|
+
import { isProjection, isWriteThrough } from "../projection/projection-detector.js";
|
|
12
|
+
import { hasAutoSetFields } from "./zod-validators.js";
|
|
13
|
+
/**
|
|
14
|
+
* The dialect-correct Drizzle `Db` type alias + its import — parameter-passed into every
|
|
15
|
+
* generated CRUD helper (ADR-0008), so the signatures `find…(db: Db, …)` typecheck without
|
|
16
|
+
* the consumer importing anything to construct one. Shared by every queries-file renderer.
|
|
17
|
+
* - Postgres: `PgDatabase<…>` is the base every PG driver extends (node-postgres,
|
|
18
|
+
* postgres.js, Neon, Vercel, pglite) — accepts whichever driver the consumer chose.
|
|
19
|
+
* - SQLite: `BaseSQLiteDatabase<"sync" | "async", …>` accepts BOTH sync (better-sqlite3)
|
|
20
|
+
* and async (libsql/Turso/D1) drivers; the generated queries `await` results, valid on either.
|
|
21
|
+
*/
|
|
22
|
+
function dbTypeBlock(dialect) {
|
|
23
|
+
return dialect === "postgres"
|
|
24
|
+
? {
|
|
25
|
+
import: `import type { PgDatabase, PgQueryResultHKT } from "drizzle-orm/pg-core";`,
|
|
26
|
+
alias: `type Db = PgDatabase<PgQueryResultHKT, Record<string, never>>;`,
|
|
27
|
+
}
|
|
28
|
+
: {
|
|
29
|
+
import: `import type { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";`,
|
|
30
|
+
alias: `type Db = BaseSQLiteDatabase<"sync" | "async", unknown>;`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
12
33
|
export function renderQueriesFile(obj, ctx) {
|
|
13
34
|
// FR-017 Tier 2 — a TPH discriminator base gets a polymorphic queries file:
|
|
14
35
|
// base reads dispatch through parse<Base>, and per-subtype CRUD targets the
|
|
@@ -25,6 +46,12 @@ export function renderQueriesFile(obj, ctx) {
|
|
|
25
46
|
if (isProjection(obj)) {
|
|
26
47
|
return renderProjectionQueriesFile(obj, ctx);
|
|
27
48
|
}
|
|
49
|
+
// #214 — a write-through entity read-view (FR-024 §7): READS route to the replica
|
|
50
|
+
// view (returning the derived fields), WRITES target the table. A hybrid of the
|
|
51
|
+
// projection read path + the vanilla write path.
|
|
52
|
+
if (isWriteThrough(obj)) {
|
|
53
|
+
return renderWriteThroughQueriesFile(obj, ctx);
|
|
54
|
+
}
|
|
28
55
|
const entityName = obj.name;
|
|
29
56
|
// Import the entity's own file. Same target → relative "./Entity"; cross
|
|
30
57
|
// target → importBase-qualified package path.
|
|
@@ -34,32 +61,25 @@ export function renderQueriesFile(obj, ctx) {
|
|
|
34
61
|
// helper (ADR-0008). Emit the dialect-correct Drizzle type alias so the
|
|
35
62
|
// signatures `findXxx(db: Db, ...)` typecheck without the consumer importing
|
|
36
63
|
// anything to construct one. Consumers pass any compatible Drizzle instance.
|
|
37
|
-
const dbTypeImport = ctx.dialect
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
// postgres.js, Neon, Vercel, pglite) — not just node-postgres, so any
|
|
43
|
-
// PG driver the consumer chose is accepted.
|
|
44
|
-
? `type Db = PgDatabase<PgQueryResultHKT, Record<string, never>>;`
|
|
45
|
-
// SQLite: accept BOTH sync (better-sqlite3) and async (libsql/Turso/D1)
|
|
46
|
-
// drivers. Generated queries `await` their results, which is valid on
|
|
47
|
-
// either result-kind; pinning `<"async">` wrongly rejected better-sqlite3
|
|
48
|
-
// (the most common SQLite driver) with "is not assignable".
|
|
49
|
-
: `type Db = BaseSQLiteDatabase<"sync" | "async", unknown>;`;
|
|
64
|
+
const { import: dbTypeImport, alias: dbTypeAlias } = dbTypeBlock(ctx.dialect);
|
|
65
|
+
// #203 — an @autoSet entity additionally imports its preserving-shape schema
|
|
66
|
+
// and emits the `insertPreserving<Entity>` escape hatch after `create<Entity>`.
|
|
67
|
+
const autoSet = hasAutoSetFields(obj);
|
|
68
|
+
const preservingImport = autoSet ? `, ${entityName}InsertPreservingSchema` : "";
|
|
50
69
|
// Literal imports (Db type + entity types) live in a code block so they sort
|
|
51
70
|
// alongside ts-poet's hoisted imp() imports at the top of the body.
|
|
52
71
|
const literalImports = code `
|
|
53
72
|
${dbTypeImport}
|
|
54
73
|
${dbTypeAlias}
|
|
55
74
|
|
|
56
|
-
import { ${varName}, type ${entityName}, type ${entityName}Patch, ${entityName}InsertSchema, ${entityName}UpdateSchema } from ${JSON.stringify(entityFileName)};
|
|
75
|
+
import { ${varName}, type ${entityName}, type ${entityName}Patch, ${entityName}InsertSchema${preservingImport}, ${entityName}UpdateSchema } from ${JSON.stringify(entityFileName)};
|
|
57
76
|
`;
|
|
58
77
|
const sections = [
|
|
59
78
|
literalImports,
|
|
60
79
|
renderFindByIdFn(obj, ctx),
|
|
61
80
|
renderListFn(obj, ctx),
|
|
62
81
|
renderCreateFn(obj, ctx),
|
|
82
|
+
...(autoSet ? [renderInsertPreservingFn(obj, ctx)] : []),
|
|
63
83
|
renderUpdateFn(obj, ctx),
|
|
64
84
|
renderDeleteByIdFn(obj, ctx),
|
|
65
85
|
];
|
|
@@ -95,19 +115,7 @@ function renderProjectionQueriesFile(obj, ctx) {
|
|
|
95
115
|
const entityFileName = entityModuleSpecifier(ctx.selfTarget, ctx.entityModuleTarget, obj.package, entityName, ctx.extStyle);
|
|
96
116
|
const { fieldName: pkField, tsType: pkType } = getPkInfo(obj, ctx);
|
|
97
117
|
const eqSym = imp("eq@drizzle-orm");
|
|
98
|
-
const dbTypeImport = ctx.dialect
|
|
99
|
-
? `import type { PgDatabase, PgQueryResultHKT } from "drizzle-orm/pg-core";`
|
|
100
|
-
: `import type { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";`;
|
|
101
|
-
const dbTypeAlias = ctx.dialect === "postgres"
|
|
102
|
-
// Postgres: the base class every PG driver extends (node-postgres,
|
|
103
|
-
// postgres.js, Neon, Vercel, pglite) — not just node-postgres, so any
|
|
104
|
-
// PG driver the consumer chose is accepted.
|
|
105
|
-
? `type Db = PgDatabase<PgQueryResultHKT, Record<string, never>>;`
|
|
106
|
-
// SQLite: accept BOTH sync (better-sqlite3) and async (libsql/Turso/D1)
|
|
107
|
-
// drivers. Generated queries `await` their results, which is valid on
|
|
108
|
-
// either result-kind; pinning `<"async">` wrongly rejected better-sqlite3
|
|
109
|
-
// (the most common SQLite driver) with "is not assignable".
|
|
110
|
-
: `type Db = BaseSQLiteDatabase<"sync" | "async", unknown>;`;
|
|
118
|
+
const { import: dbTypeImport, alias: dbTypeAlias } = dbTypeBlock(ctx.dialect);
|
|
111
119
|
const literalImports = code `
|
|
112
120
|
${dbTypeImport}
|
|
113
121
|
${dbTypeAlias}
|
|
@@ -133,6 +141,84 @@ export async function ${listFnName(entityName)}(db: Db, opts?: { limit?: number;
|
|
|
133
141
|
`// Customize via ${entityName}.extra.ts in this directory (additional queries, custom logic).\n`;
|
|
134
142
|
return header + body;
|
|
135
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* #214 — the queries file for a write-through entity read-view (FR-024 §7).
|
|
146
|
+
*
|
|
147
|
+
* Reads (`find<Name>ById`, `list<Plural>`, reverse finders) SELECT from the replica
|
|
148
|
+
* `<camel>View` so they return the derived fields; writes (`create`/`update`/`delete`)
|
|
149
|
+
* target the write TABLE (derived-free, #213). A create/update re-reads the row THROUGH
|
|
150
|
+
* the view by PK — a derived field is only computable via the view's join, so the
|
|
151
|
+
* returned `<Entity>` (view shape) is read-your-writes correct.
|
|
152
|
+
*/
|
|
153
|
+
function renderWriteThroughQueriesFile(obj, ctx) {
|
|
154
|
+
const entityName = obj.name;
|
|
155
|
+
const camelName = entityName.charAt(0).toLowerCase() + entityName.slice(1);
|
|
156
|
+
const viewVar = `${camelName}View`;
|
|
157
|
+
const tableVar = ctx.collectionName(entityName);
|
|
158
|
+
const singularVar = camelName;
|
|
159
|
+
const entityFileName = entityModuleSpecifier(ctx.selfTarget, ctx.entityModuleTarget, obj.package, entityName, ctx.extStyle);
|
|
160
|
+
const { fieldName: pkField, tsType: pkType } = getPkInfo(obj, ctx);
|
|
161
|
+
const pkFields = getPkFields(obj);
|
|
162
|
+
const eqSym = imp("eq@drizzle-orm");
|
|
163
|
+
const andSym = imp("and@drizzle-orm");
|
|
164
|
+
const autoSet = hasAutoSetFields(obj);
|
|
165
|
+
const { import: dbTypeImport, alias: dbTypeAlias } = dbTypeBlock(ctx.dialect);
|
|
166
|
+
const preservingImport = autoSet ? `, ${entityName}InsertPreservingSchema` : "";
|
|
167
|
+
const literalImports = code `
|
|
168
|
+
${dbTypeImport}
|
|
169
|
+
${dbTypeAlias}
|
|
170
|
+
|
|
171
|
+
import { ${viewVar}, ${tableVar}, type ${entityName}, type ${entityName}Patch, ${entityName}InsertSchema${preservingImport}, ${entityName}UpdateSchema } from ${JSON.stringify(entityFileName)};
|
|
172
|
+
`;
|
|
173
|
+
// The view re-read predicate keyed on ALL primary-key columns of `source` (the
|
|
174
|
+
// insert's returning() row), so a composite PK re-reads the EXACT written row rather
|
|
175
|
+
// than any view row sharing the first key component. `andSym`/`pkFields[i]` are only
|
|
176
|
+
// referenced when the PK is composite, so a single-PK entity emits a bare `eq(...)`.
|
|
177
|
+
const viewByAllPk = (source) => pkFields.length > 1
|
|
178
|
+
? code `${andSym}(${joinCode(pkFields.map((f) => code `${eqSym}(${viewVar}.${f}, ${source}.${f})`), { on: ", " })})`
|
|
179
|
+
: code `${eqSym}(${viewVar}.${pkField}, ${source}.${pkField})`;
|
|
180
|
+
// A create/insertPreserving writes the table, then reads the persisted row back
|
|
181
|
+
// through the view so the returned <Entity> carries the derived fields.
|
|
182
|
+
const insertReturningView = (fnName, schemaName) => code `
|
|
183
|
+
export async function ${fnName}(db: Db, data: unknown): Promise<${entityName}> {
|
|
184
|
+
const validated = ${schemaName}.parse(data);
|
|
185
|
+
const [${singularVar}] = await db.insert(${tableVar}).values(validated).returning();
|
|
186
|
+
const [row] = await db.select().from(${viewVar}).where(${viewByAllPk(`${singularVar}!`)}).limit(1);
|
|
187
|
+
return row!;
|
|
188
|
+
}
|
|
189
|
+
`;
|
|
190
|
+
const updateFn = code `
|
|
191
|
+
export async function ${updateFnName(entityName)}(db: Db, ${pkField}: ${pkType}, patch: ${entityName}Patch): Promise<${entityName} | null> {
|
|
192
|
+
const validated = ${entityName}UpdateSchema.parse(patch);
|
|
193
|
+
// PATCH-5: an empty patch is a no-op — return the current (view) row.
|
|
194
|
+
if (Object.keys(validated).length === 0) return ${findByIdFnName(entityName)}(db, ${pkField});
|
|
195
|
+
const updated = await db.update(${tableVar}).set(validated).where(${eqSym}(${tableVar}.${pkField}, ${pkField})).returning();
|
|
196
|
+
if (updated.length === 0) return null;
|
|
197
|
+
const [row] = await db.select().from(${viewVar}).where(${eqSym}(${viewVar}.${pkField}, ${pkField})).limit(1);
|
|
198
|
+
return row ?? null;
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
201
|
+
const sections = [
|
|
202
|
+
literalImports,
|
|
203
|
+
// Reads route to the replica view.
|
|
204
|
+
renderFindByIdFn(obj, ctx, viewVar),
|
|
205
|
+
renderListFn(obj, ctx, viewVar),
|
|
206
|
+
// Writes target the table (create/update re-read through the view; delete is boolean).
|
|
207
|
+
insertReturningView(createFnName(entityName), `${entityName}InsertSchema`),
|
|
208
|
+
...(autoSet ? [insertReturningView(insertPreservingFnName(entityName), `${entityName}InsertPreservingSchema`)] : []),
|
|
209
|
+
updateFn,
|
|
210
|
+
renderDeleteByIdFn(obj, ctx),
|
|
211
|
+
];
|
|
212
|
+
// Reverse finders are reads → route to the view.
|
|
213
|
+
for (const fk of reverseFksFor(obj)) {
|
|
214
|
+
sections.push(renderReverseFinderFns(obj, fk, ctx, viewVar));
|
|
215
|
+
}
|
|
216
|
+
const body = joinCode(sections, { on: "\n" }).toString();
|
|
217
|
+
const header = `// ${GENERATED_HEADER} — DO NOT EDIT.\n` +
|
|
218
|
+
`// Source metadata: ${entityName} (${obj.fqn()}) — write-through entity read-view (reads → view, writes → table)\n` +
|
|
219
|
+
`// Customize via ${entityName}.extra.ts in this directory (additional queries, custom logic).\n`;
|
|
220
|
+
return header + body;
|
|
221
|
+
}
|
|
136
222
|
/**
|
|
137
223
|
* FR-017 Tier 2 — the polymorphic + per-subtype queries file for a TPH base.
|
|
138
224
|
*
|
|
@@ -157,19 +243,7 @@ function renderTphQueriesFile(base, ctx) {
|
|
|
157
243
|
const parseSym = imp(`parse${baseName}@${baseFileSpec}`);
|
|
158
244
|
const eqSym = imp("eq@drizzle-orm");
|
|
159
245
|
const andSym = imp("and@drizzle-orm");
|
|
160
|
-
const dbTypeImport = ctx.dialect
|
|
161
|
-
? `import type { PgDatabase, PgQueryResultHKT } from "drizzle-orm/pg-core";`
|
|
162
|
-
: `import type { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";`;
|
|
163
|
-
const dbTypeAlias = ctx.dialect === "postgres"
|
|
164
|
-
// Postgres: the base class every PG driver extends (node-postgres,
|
|
165
|
-
// postgres.js, Neon, Vercel, pglite) — not just node-postgres, so any
|
|
166
|
-
// PG driver the consumer chose is accepted.
|
|
167
|
-
? `type Db = PgDatabase<PgQueryResultHKT, Record<string, never>>;`
|
|
168
|
-
// SQLite: accept BOTH sync (better-sqlite3) and async (libsql/Turso/D1)
|
|
169
|
-
// drivers. Generated queries `await` their results, which is valid on
|
|
170
|
-
// either result-kind; pinning `<"async">` wrongly rejected better-sqlite3
|
|
171
|
-
// (the most common SQLite driver) with "is not assignable".
|
|
172
|
-
: `type Db = BaseSQLiteDatabase<"sync" | "async", unknown>;`;
|
|
246
|
+
const { import: dbTypeImport, alias: dbTypeAlias } = dbTypeBlock(ctx.dialect);
|
|
173
247
|
// --- Polymorphic base reads ---
|
|
174
248
|
const polymorphic = code `
|
|
175
249
|
export async function find${baseName}ById(db: Db, ${pkField}: ${pkType}): Promise<${baseTypeSym} | null> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-file.js","sourceRoot":"","sources":["../../src/templates/queries-file.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queries-file.js","sourceRoot":"","sources":["../../src/templates/queries-file.ts"],"names":[],"mappings":"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"}
|