@opensaas/stack-cli 0.9.0 → 0.10.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.
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAkC,MAAM,sBAAsB,CAAA;AAwE1F;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA0JnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAUlF"}
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAkC,MAAM,sBAAsB,CAAA;AAgL1F;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAuKnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAUlF"}
@@ -64,6 +64,81 @@ function parseRelationshipRef(ref) {
64
64
  throw new Error(`Invalid relationship ref: ${ref}`);
65
65
  }
66
66
  }
67
+ /**
68
+ * Check if a relationship is one-to-one (bidirectional with both sides having many: false)
69
+ */
70
+ function isOneToOneRelationship(listName, fieldName, field, config) {
71
+ // Must be bidirectional (has target field)
72
+ const { list: targetList, field: targetField } = parseRelationshipRef(field.ref);
73
+ if (!targetField) {
74
+ return false;
75
+ }
76
+ // This side must be single (many: false or undefined)
77
+ if (field.many) {
78
+ return false;
79
+ }
80
+ // Check if target list exists
81
+ const targetListConfig = config.lists[targetList];
82
+ if (!targetListConfig) {
83
+ throw new Error(`Referenced list "${targetList}" not found in config`);
84
+ }
85
+ // Check if target field exists and is a relationship
86
+ const targetFieldConfig = targetListConfig.fields[targetField];
87
+ if (!targetFieldConfig) {
88
+ throw new Error(`Referenced field "${targetList}.${targetField}" not found. If you want a one-sided relationship, use ref: "${targetList}" instead of ref: "${targetList}.${targetField}"`);
89
+ }
90
+ if (targetFieldConfig.type !== 'relationship') {
91
+ throw new Error(`Referenced field "${targetList}.${targetField}" is not a relationship field`);
92
+ }
93
+ const targetRelField = targetFieldConfig;
94
+ return !targetRelField.many;
95
+ }
96
+ /**
97
+ * Determine if this side of a relationship should have the foreign key
98
+ * For one-to-one relationships, only one side should have the foreign key
99
+ */
100
+ function shouldHaveForeignKey(listName, fieldName, field, config) {
101
+ // List-only refs always create foreign keys
102
+ const { list: targetList, field: targetField } = parseRelationshipRef(field.ref);
103
+ if (!targetField) {
104
+ return true;
105
+ }
106
+ // Many-side never has foreign key (it's on the one-side)
107
+ if (field.many) {
108
+ return false;
109
+ }
110
+ // Check if this is a one-to-one relationship
111
+ const isOneToOne = isOneToOneRelationship(listName, fieldName, field, config);
112
+ if (!isOneToOne) {
113
+ // One-to-many or many-to-one: the single side has the foreign key
114
+ return true;
115
+ }
116
+ // One-to-one relationship: check db.foreignKey configuration
117
+ const targetListConfig = config.lists[targetList];
118
+ const targetFieldConfig = targetListConfig.fields[targetField];
119
+ const thisSideExplicit = field.db?.foreignKey;
120
+ const otherSideExplicit = targetFieldConfig.db?.foreignKey;
121
+ // Validate: both sides cannot be true
122
+ if (thisSideExplicit === true && otherSideExplicit === true) {
123
+ throw new Error(`Invalid one-to-one relationship: both "${listName}.${fieldName}" and "${targetList}.${targetField}" have db.foreignKey set to true. Only one side can store the foreign key.`);
124
+ }
125
+ // If this side explicitly wants the foreign key, use it
126
+ if (thisSideExplicit === true) {
127
+ return true;
128
+ }
129
+ // If other side explicitly wants it, don't use it on this side
130
+ if (otherSideExplicit === true) {
131
+ return false;
132
+ }
133
+ // Default: use alphabetical ordering to ensure consistency
134
+ // The "smaller" list name (alphabetically) gets the foreign key
135
+ const comparison = listName.localeCompare(targetList);
136
+ if (comparison !== 0) {
137
+ return comparison < 0;
138
+ }
139
+ // Same list (self-referential): use field name ordering
140
+ return fieldName.localeCompare(targetField) < 0;
141
+ }
67
142
  /**
68
143
  * Generate Prisma schema from OpenSaas config
69
144
  */
@@ -152,18 +227,30 @@ export function generatePrismaSchema(config) {
152
227
  }
153
228
  }
154
229
  else {
155
- // Many-to-one relationship (add foreign key field)
156
- const foreignKeyField = `${fieldName}Id`;
157
- const fkPaddedName = foreignKeyField.padEnd(12);
158
- lines.push(` ${fkPaddedName} String?`);
159
- if (targetField) {
160
- // Standard bidirectional relationship
161
- lines.push(` ${paddedName} ${targetList}? @relation(fields: [${foreignKeyField}], references: [id])`);
230
+ // Single relationship - check if this side should have the foreign key
231
+ const hasForeignKey = shouldHaveForeignKey(listName, fieldName, relField, config);
232
+ if (hasForeignKey) {
233
+ // This side has the foreign key
234
+ const foreignKeyField = `${fieldName}Id`;
235
+ const fkPaddedName = foreignKeyField.padEnd(12);
236
+ // Check if this is a one-to-one relationship
237
+ const isOneToOne = isOneToOneRelationship(listName, fieldName, relField, config);
238
+ const uniqueModifier = isOneToOne ? ' @unique' : '';
239
+ lines.push(` ${fkPaddedName} String?${uniqueModifier}`);
240
+ if (targetField) {
241
+ // Standard bidirectional relationship
242
+ lines.push(` ${paddedName} ${targetList}? @relation(fields: [${foreignKeyField}], references: [id])`);
243
+ }
244
+ else {
245
+ // List-only ref: use named relation
246
+ const relationName = `${listName}_${fieldName}`;
247
+ lines.push(` ${paddedName} ${targetList}? @relation("${relationName}", fields: [${foreignKeyField}], references: [id])`);
248
+ }
162
249
  }
163
250
  else {
164
- // List-only ref: use named relation
165
- const relationName = `${listName}_${fieldName}`;
166
- lines.push(` ${paddedName} ${targetList}? @relation("${relationName}", fields: [${foreignKeyField}], references: [id])`);
251
+ // This side does NOT have the foreign key (other side of one-to-one)
252
+ // Just add the relation field without foreign key
253
+ lines.push(` ${paddedName} ${targetList}?`);
167
254
  }
168
255
  }
169
256
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensaas/stack-cli",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "CLI tools for OpenSaas Stack",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,6 +13,10 @@
13
13
  "./generator": {
14
14
  "types": "./dist/generator/index.d.ts",
15
15
  "default": "./dist/generator/index.js"
16
+ },
17
+ "./generator/prisma": {
18
+ "types": "./dist/generator/prisma.d.ts",
19
+ "default": "./dist/generator/prisma.js"
16
20
  }
17
21
  },
18
22
  "bin": {
@@ -51,7 +55,7 @@
51
55
  "ora": "^9.0.0",
52
56
  "prompts": "^2.4.2",
53
57
  "zod": "^4.1.13",
54
- "@opensaas/stack-core": "0.9.0"
58
+ "@opensaas/stack-core": "0.10.0"
55
59
  },
56
60
  "devDependencies": {
57
61
  "@types/fs-extra": "^11.0.4",