Skip to content

Commit adbdee5

Browse files
committed
update
1 parent d79d250 commit adbdee5

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

packages/runtime/src/enhancements/node/delegate.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,7 @@ export class DelegateProxyHandler extends DefaultPrismaProxyHandler {
635635
// convert foreign key assignments to `connect` payload
636636
// e.g.: { authorId: value } -> { author: { connect: { id: value } } }
637637
private fkAssignmentToConnect(model: string, args: any) {
638+
const keysToDelete: string[] = [];
638639
for (const [key, value] of Object.entries(args)) {
639640
if (value === undefined) {
640641
continue;
@@ -648,19 +649,22 @@ export class DelegateProxyHandler extends DefaultPrismaProxyHandler {
648649
const relationInfo = this.queryUtils.getRelationForForeignKey(model, key);
649650
if (relationInfo) {
650651
// turn { [fk]: value } into { [relation]: { connect: { [id]: value } } }
651-
if (!args[relationInfo.relation.name]) {
652-
args[relationInfo.relation.name] = {};
652+
const relationName = relationInfo.relation.name;
653+
if (!args[relationName]) {
654+
args[relationName] = {};
653655
}
654-
if (!args[relationInfo.relation.name].connect) {
655-
args[relationInfo.relation.name].connect = {};
656+
if (!args[relationName].connect) {
657+
args[relationName].connect = {};
656658
}
657-
if (!(relationInfo.idField in args[relationInfo.relation.name].connect)) {
658-
args[relationInfo.relation.name].connect[relationInfo.idField] = value;
659-
delete args[key];
659+
if (!(relationInfo.idField in args[relationName].connect)) {
660+
args[relationName].connect[relationInfo.idField] = value;
661+
keysToDelete.push(key);
660662
}
661663
}
662664
}
663665
}
666+
667+
keysToDelete.forEach((key) => delete args[key]);
664668
}
665669

666670
// inject field data that belongs to base type into proper nesting structure

0 commit comments

Comments
 (0)