orchid-orm 1.49.6 → 1.49.8

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.js 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 pqb._queryUpdate(currentRelationsQuery, setNulls);
935
+ let queryToDisconnect = currentRelationsQuery;
936
+ if (params.set) {
937
+ queryToDisconnect = queryToDisconnect.whereNot(params.set);
938
+ }
939
+ await pqb._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 pqb._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 : orchidCore.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 : orchidCore.objectHasValues(params.set))) {
1302
+ if (setConditions) {
1303
+ queryToDisconnect = queryToDisconnect.whereNot(setConditions);
1304
+ }
1305
+ await pqb._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 pqb._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
  }