@@ -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