Skip to content

Commit 1bac1ba

Browse files
committed
fix(aggregate members): fixed typo and support for no aggregate members
1 parent 22d7479 commit 1bac1ba

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

lib/core/src/aggregates/aggregate-member.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ AggregateMember.getMembers = function <AggregateMember = unknown>(
5454
if (!AggregateMember.hasMembers(anObject)) {
5555
const name = anObject.name || anObject.constructor?.name || 'Object';
5656
throw new InvalidOperationException(
57-
`${name} does not have an aggregate members.`
57+
`${name} does not have aggregate members.`
5858
);
5959
}
6060

lib/core/src/domain-events/event-sink.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,9 @@ export class EventSink<DomainEvent extends ObjectLiteral> {
4848
const aggregateId = this.getAggregateIdFrom(entity);
4949
if (aggregateId) events.push(...(sink.get(aggregateId) || []));
5050

51-
const aggregateMembers = this.getAggregateMembersFrom(entity);
52-
5351
// Assuming aggregate members will be nested only one level deep at most
5452
// instead of recursively traversing the aggregate members.
53+
const aggregateMembers = this.getAggregateMembersFrom(entity);
5554
for (const aggregateMember of aggregateMembers) {
5655
if (this.isIterable(aggregateMember)) {
5756
for (const childEntity of aggregateMember) {
@@ -138,7 +137,11 @@ export class EventSink<DomainEvent extends ObjectLiteral> {
138137
* Returns the aggregate id of an object.
139138
*/
140139
private static getAggregateMembersFrom(anEntity: Entity) {
141-
return AggregateMember.getMembers<Entity | Iterable<Entity>>(anEntity);
140+
try {
141+
return AggregateMember.getMembers<Entity | Iterable<Entity>>(anEntity);
142+
} catch {
143+
return [];
144+
}
142145
}
143146

144147
/**

0 commit comments

Comments
 (0)