@metaobjectsdev/codegen-ts 0.15.17 → 0.15.18-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-codegen.d.ts","sourceRoot":"","sources":["../src/payload-codegen.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,QAAQ,EAcd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"payload-codegen.d.ts","sourceRoot":"","sources":["../src/payload-codegen.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,QAAQ,EAcd,MAAM,0BAA0B,CAAC;AAyHlC,kGAAkG;AAClG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CASjG;AAMD,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAyBjF"}
|
package/dist/payload-codegen.js
CHANGED
|
@@ -45,7 +45,10 @@ function findObject(root, name) {
|
|
|
45
45
|
function fieldTsType(field, ownerName) {
|
|
46
46
|
if (field.subType === FIELD_SUBTYPE_OBJECT) {
|
|
47
47
|
const ref = field.attr(FIELD_ATTR_OBJECT_REF);
|
|
48
|
-
|
|
48
|
+
// FR-032/ADR-0041 — @objectRef canonicalizes to an FQN (`pkg::Name`), which is not
|
|
49
|
+
// a valid TS identifier. The emitted TYPE is the bare name; the FQN is retained as
|
|
50
|
+
// refVo for resolution/recursion (findObject matches FQN or bare).
|
|
51
|
+
const refName = typeof ref === "string" ? stripPackage(ref) : "unknown";
|
|
49
52
|
// isArray is a structural property on MetaData, not an attr.
|
|
50
53
|
const isArray = field.resolvedIsArray();
|
|
51
54
|
const result = {
|
|
@@ -77,12 +80,16 @@ function fieldTsType(field, ownerName) {
|
|
|
77
80
|
function isFieldRequired(field) {
|
|
78
81
|
return field.attr(FIELD_ATTR_REQUIRED) === true;
|
|
79
82
|
}
|
|
80
|
-
function emitInterface(root,
|
|
81
|
-
|
|
82
|
-
return;
|
|
83
|
-
const vo = findObject(root, voName);
|
|
83
|
+
function emitInterface(root, voRef, emitted, out, enumAliases) {
|
|
84
|
+
const vo = findObject(root, voRef);
|
|
84
85
|
if (!vo)
|
|
85
86
|
return;
|
|
87
|
+
// FR-032/ADR-0041 — voRef may arrive as an FQN (a nested @objectRef); the emitted
|
|
88
|
+
// interface NAME must be the bare, TS-valid name. Dedupe on the bare name too, so a
|
|
89
|
+
// VO reached once by bare name and once by FQN still emits exactly once.
|
|
90
|
+
const voName = vo.name;
|
|
91
|
+
if (emitted.has(voName))
|
|
92
|
+
return;
|
|
86
93
|
emitted.add(voName);
|
|
87
94
|
const aliasLines = [];
|
|
88
95
|
const lines = [`export interface ${voName} {`];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-codegen.js","sourceRoot":"","sources":["../src/payload-codegen.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,sEAAsE;AACtE,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,+EAA+E;AAC/E,kDAAkD;AAElD,OAAO,EAGL,WAAW,EACX,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEpF,MAAM,SAAS,GAA2B;IACxC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,+JAA+J;AAC/J,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY;IAC9C,8EAA8E;IAC9E,4DAA4D;IAC5D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAClB,KAAe,EACf,SAAiB;IAEjB,IAAI,KAAK,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"payload-codegen.js","sourceRoot":"","sources":["../src/payload-codegen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/codegen-ts",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.18-rc.1",
|
|
4
4
|
"description": "TypeScript codegen engine for MetaObjects — emits Drizzle, Zod, and Fastify artifacts.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -111,8 +111,8 @@
|
|
|
111
111
|
"access": "public"
|
|
112
112
|
},
|
|
113
113
|
"dependencies": {
|
|
114
|
-
"@metaobjectsdev/metadata": "0.15.
|
|
115
|
-
"@metaobjectsdev/render": "0.15.
|
|
114
|
+
"@metaobjectsdev/metadata": "0.15.18-rc.1",
|
|
115
|
+
"@metaobjectsdev/render": "0.15.18-rc.1",
|
|
116
116
|
"@biomejs/js-api": "^0.7.0",
|
|
117
117
|
"@biomejs/wasm-nodejs": "^1.9.4",
|
|
118
118
|
"ts-poet": "^6.10.0"
|
|
@@ -123,9 +123,9 @@
|
|
|
123
123
|
},
|
|
124
124
|
"devDependencies": {
|
|
125
125
|
"@biomejs/biome": "^1.9.0",
|
|
126
|
-
"@metaobjectsdev/codegen-ts-react": "0.15.
|
|
127
|
-
"@metaobjectsdev/migrate-ts": "0.15.
|
|
128
|
-
"@metaobjectsdev/runtime-ts": "0.15.
|
|
126
|
+
"@metaobjectsdev/codegen-ts-react": "0.15.18-rc.1",
|
|
127
|
+
"@metaobjectsdev/migrate-ts": "0.15.18-rc.1",
|
|
128
|
+
"@metaobjectsdev/runtime-ts": "0.15.18-rc.1",
|
|
129
129
|
"bun-types": "latest",
|
|
130
130
|
"drizzle-orm": "^0.36.0",
|
|
131
131
|
"hono": "^4.6.0",
|
package/src/payload-codegen.ts
CHANGED
|
@@ -67,7 +67,10 @@ function fieldTsType(
|
|
|
67
67
|
): { type: string; refVo?: string; enumAlias?: { name: string; decl: string } } {
|
|
68
68
|
if (field.subType === FIELD_SUBTYPE_OBJECT) {
|
|
69
69
|
const ref = field.attr(FIELD_ATTR_OBJECT_REF);
|
|
70
|
-
|
|
70
|
+
// FR-032/ADR-0041 — @objectRef canonicalizes to an FQN (`pkg::Name`), which is not
|
|
71
|
+
// a valid TS identifier. The emitted TYPE is the bare name; the FQN is retained as
|
|
72
|
+
// refVo for resolution/recursion (findObject matches FQN or bare).
|
|
73
|
+
const refName = typeof ref === "string" ? stripPackage(ref) : "unknown";
|
|
71
74
|
// isArray is a structural property on MetaData, not an attr.
|
|
72
75
|
const isArray = field.resolvedIsArray();
|
|
73
76
|
const result: { type: string; refVo?: string } = {
|
|
@@ -102,14 +105,18 @@ function isFieldRequired(field: MetaData): boolean {
|
|
|
102
105
|
|
|
103
106
|
function emitInterface(
|
|
104
107
|
root: MetaData,
|
|
105
|
-
|
|
108
|
+
voRef: string,
|
|
106
109
|
emitted: Set<string>,
|
|
107
110
|
out: string[],
|
|
108
111
|
enumAliases: Set<string>,
|
|
109
112
|
): void {
|
|
110
|
-
|
|
111
|
-
const vo = findObject(root, voName);
|
|
113
|
+
const vo = findObject(root, voRef);
|
|
112
114
|
if (!vo) return;
|
|
115
|
+
// FR-032/ADR-0041 — voRef may arrive as an FQN (a nested @objectRef); the emitted
|
|
116
|
+
// interface NAME must be the bare, TS-valid name. Dedupe on the bare name too, so a
|
|
117
|
+
// VO reached once by bare name and once by FQN still emits exactly once.
|
|
118
|
+
const voName = vo.name;
|
|
119
|
+
if (emitted.has(voName)) return;
|
|
113
120
|
emitted.add(voName);
|
|
114
121
|
const aliasLines: string[] = [];
|
|
115
122
|
const lines: string[] = [`export interface ${voName} {`];
|