orchid-orm 1.49.6 → 1.49.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/dist/index.mjs CHANGED
@@ -932,7 +932,11 @@ const nestedUpdate$2 = ({ query, primaryKeys, foreignKeys }) => {
932
932
  ids
933
933
  );
934
934
  if (params.create || params.disconnect || params.set) {
935
- await _queryUpdate(currentRelationsQuery, setNulls);
935
+ let queryToDisconnect = currentRelationsQuery;
936
+ if (params.set) {
937
+ queryToDisconnect = queryToDisconnect.whereNot(params.set);
938
+ }
939
+ await _queryUpdate(queryToDisconnect, setNulls);
936
940
  const record = data[0];
937
941
  if (params.create) {
938
942
  const obj = { ...params.create };
@@ -1285,27 +1289,27 @@ const nestedUpdate$1 = ({ query, primaryKeys, foreignKeys }) => {
1285
1289
  for (const foreignKey of foreignKeys) {
1286
1290
  obj[foreignKey] = null;
1287
1291
  }
1288
- await _queryUpdate(
1289
- getWhereForNestedUpdate(
1290
- t,
1291
- data,
1292
- params.disconnect,
1293
- primaryKeys,
1294
- foreignKeys
1295
- ),
1296
- obj
1292
+ const setConditions = params.set && (Array.isArray(params.set) ? params.set.length : objectHasValues(params.set)) && (Array.isArray(params.set) ? {
1293
+ OR: params.set
1294
+ } : params.set);
1295
+ let queryToDisconnect = getWhereForNestedUpdate(
1296
+ t,
1297
+ data,
1298
+ params.disconnect,
1299
+ primaryKeys,
1300
+ foreignKeys
1297
1301
  );
1298
- if (params.set && (Array.isArray(params.set) ? params.set.length : objectHasValues(params.set))) {
1302
+ if (setConditions) {
1303
+ queryToDisconnect = queryToDisconnect.whereNot(setConditions);
1304
+ }
1305
+ await _queryUpdate(queryToDisconnect, obj);
1306
+ if (setConditions) {
1299
1307
  const obj2 = {};
1300
1308
  for (let i = 0; i < len; i++) {
1301
1309
  obj2[foreignKeys[i]] = data[0][primaryKeys[i]];
1302
1310
  }
1303
1311
  await _queryUpdate(
1304
- t.where(
1305
- Array.isArray(params.set) ? {
1306
- OR: params.set
1307
- } : params.set
1308
- ),
1312
+ t.where(setConditions),
1309
1313
  obj2
1310
1314
  );
1311
1315
  }