Fix upsert in ORM (#13589)

Before:
<img width="1496" height="850" alt="image"
src="https://github.com/user-attachments/assets/bb334c4d-99c3-4237-90e3-02400ab566f5"
/>

After: 
<img width="1496" height="850" alt="image"
src="https://github.com/user-attachments/assets/4e53bdf0-6f2c-4a11-9836-d83f44291a0b"
/>


Query:
```
mutation CreatePerson($upsert: Boolean, $data: PersonCreateInput) {
  createPerson(upsert: $upsert, data: $data) {
    jobTitle
    id
  }
}
```

Variables:
```
{
  "upsert": true,
  "data": {
    "name": { "firstName": "marie"}
  }
}
```
This commit is contained in:
Charles Bochet
2025-08-04 14:13:55 +02:00
committed by GitHub
parent b85918fc7a
commit ae17640fbc
3 changed files with 17 additions and 13 deletions
@@ -190,8 +190,8 @@ export class WorkspaceEntityManager extends EntityManager {
override upsert<Entity extends ObjectLiteral>(
target: EntityTarget<Entity>,
entityOrEntities:
| QueryDeepPartialEntity<Entity>
| QueryDeepPartialEntity<Entity>[],
| QueryDeepPartialEntityWithNestedRelationFields<Entity>
| QueryDeepPartialEntityWithNestedRelationFields<Entity>[],
conflictPathsOrOptions: string[] | UpsertOptions<Entity>,
permissionOptions?: {
shouldBypassPermissionChecks?: boolean;
@@ -209,7 +209,7 @@ export class WorkspaceEntityManager extends EntityManager {
} else {
options = conflictPathsOrOptions;
}
let entities: QueryDeepPartialEntity<Entity>[];
let entities: QueryDeepPartialEntityWithNestedRelationFields<Entity>[];
if (!Array.isArray(entityOrEntities)) {
entities = [entityOrEntities];