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.
package/build/EntityManager.cjs
CHANGED
|
@@ -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.
|
|
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
|
}));
|