@nestledjs/api 0.1.6 → 0.1.7
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/package.json
CHANGED
|
@@ -125,26 +125,17 @@ function generateRelationHandling(model, operation) {
|
|
|
125
125
|
// Generate the improved iteration logic
|
|
126
126
|
code += ' for (const [relationName, config] of Object.entries(relationMappings)) {\n';
|
|
127
127
|
code += ' if (config.ids !== undefined && config.ids !== null) {\n';
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
code += '
|
|
131
|
-
code += '
|
|
132
|
-
code += '
|
|
133
|
-
code += '
|
|
134
|
-
code +=
|
|
135
|
-
code += '
|
|
136
|
-
code += ' // Single virtual relationship - use connect\n';
|
|
137
|
-
code += ' data[relationName] = { connect: { id: config.ids } };\n';
|
|
138
|
-
code += ' }\n';
|
|
128
|
+
code += ' // Virtual list relationships use set for updates, connect for creates\n';
|
|
129
|
+
code += ' // All other relationships always use connect\n';
|
|
130
|
+
code += ' const useSet = config.isVirtual && config.isList && operation === \'update\';\n';
|
|
131
|
+
code += ' const relationOperation = useSet ? \'set\' : \'connect\';\n';
|
|
132
|
+
code += ' const ids = Array.isArray(config.ids) ? config.ids.map(id => ({ id })) : [{ id: config.ids }];\n';
|
|
133
|
+
code += ' \n';
|
|
134
|
+
code += ' if (config.isList || useSet) {\n';
|
|
135
|
+
code += ' data[relationName] = { [relationOperation]: ids };\n';
|
|
139
136
|
code += ' } else {\n';
|
|
140
|
-
code += ' //
|
|
141
|
-
code += '
|
|
142
|
-
code += ' // This case should be rare, but handle arrays if they exist\n';
|
|
143
|
-
code += ' data[relationName] = { connect: Array.isArray(config.ids) ? config.ids.map(id => ({ id })) : [{ id: config.ids }] };\n';
|
|
144
|
-
code += ' } else {\n';
|
|
145
|
-
code += ' // Single foreign key relationship - use connect\n';
|
|
146
|
-
code += ' data[relationName] = { connect: { id: config.ids } };\n';
|
|
147
|
-
code += ' }\n';
|
|
137
|
+
code += ' // Single relationship - extract the single id\n';
|
|
138
|
+
code += ' data[relationName] = { connect: { id: config.ids } };\n';
|
|
148
139
|
code += ' }\n';
|
|
149
140
|
code += ' }\n';
|
|
150
141
|
code += ' }\n';
|