joist-core 2.3.0-next.54 → 2.3.0-next.56

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.
@@ -1164,7 +1164,7 @@ var EntityManager = class EntityManager {
1164
1164
  for (const entity of require_utils.toArray(entityOrEntities)) require_BaseEntity.getInstanceData(entity).markTouched();
1165
1165
  }
1166
1166
  async recalc(entityOrEntities, reactionName) {
1167
- const entities = require_utils.toArray(entityOrEntities);
1167
+ const entities = require_utils.toArray(entityOrEntities).filter((entity) => !entity.isDeletedEntity);
1168
1168
  if (reactionName !== void 0) {
1169
1169
  const reactions = entities.map((entity) => {
1170
1170
  return require_EntityMetadata.getBaseAndSelfMetas(require_EntityMetadata.getMetadata(entity)).flatMap((meta) => meta.config.__data.reactions).find((reaction) => reaction.name === reactionName) ?? require_utils.fail(`Reaction '${reactionName}' not found on ${require_EntityMetadata.getMetadata(entity).type}`);
@@ -1174,7 +1174,22 @@ var EntityManager = class EntityManager {
1174
1174
  return;
1175
1175
  }
1176
1176
  const relations = entities.flatMap((entity) => Object.values(require_EntityMetadata.getMetadata(entity).allFields).filter((f) => "derived" in f && f.derived === "async").map((field) => entity[field.fieldName]));
1177
- await Promise.all(relations.map((r) => r.load({ forceReload: true })));
1177
+ const results = await Promise.allSettled(relations.map((r) => r.load({ forceReload: true })));
1178
+ const relationsPendingAssignedIds = [];
1179
+ const failures = [];
1180
+ results.forEach((result, i) => {
1181
+ if (result.status === "rejected") {
1182
+ if (result.reason instanceof require_index.NoIdError) relationsPendingAssignedIds.push(relations[i]);
1183
+ else failures.push(result.reason);
1184
+ }
1185
+ });
1186
+ if (relationsPendingAssignedIds.length > 0) {
1187
+ await this.assignNewIds();
1188
+ (await Promise.allSettled(relationsPendingAssignedIds.map((r) => r.load({ forceReload: true })))).forEach((result) => {
1189
+ if (result.status === "rejected") failures.push(result.reason);
1190
+ });
1191
+ }
1192
+ if (failures.length > 0) throw failures[0];
1178
1193
  entities.flatMap((entity) => Object.values(require_EntityMetadata.getMetadata(entity).allFields).filter((f) => "derived" in f && f.derived === "sync").forEach((field) => {
1179
1194
  require_fields.setField(entity, field.fieldName, entity[field.fieldName]);
1180
1195
  }));