Skip to content

Commit ff8ce31

Browse files
committed
add _sendRegistrationEvent
1 parent 69fe023 commit ff8ce31

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

packages/core/src/system.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ export interface ActorSystem<T extends ActorSystemInfo>
6666
* @internal
6767
*/
6868
_unregister: (actorRef: AnyActorRef) => void;
69+
/**
70+
* @internal
71+
*/
72+
_sendRegistrationEvent: (
73+
event: RegistrationEvent<T['actors'][keyof T['actors']]>
74+
) => void;
6975
/**
7076
* @internal
7177
*/
@@ -179,13 +185,10 @@ export function createSystem<T extends ActorSystemInfo>(
179185
children.set(sessionId, actorRef);
180186
const systemId = reverseKeyedActors.get(actorRef);
181187
if (systemId !== undefined) {
182-
const event = {
188+
system._sendRegistrationEvent({
183189
type: `@xstate.actor.register`,
184190
systemId: systemId as string,
185191
actorRef: actorRef as T['actors'][keyof T['actors']]
186-
} as const;
187-
registrationObservers.forEach((listener) => {
188-
listener.next?.(event);
189192
});
190193
}
191194
return sessionId;
@@ -197,14 +200,11 @@ export function createSystem<T extends ActorSystemInfo>(
197200
if (systemId !== undefined) {
198201
keyedActors.delete(systemId);
199202
reverseKeyedActors.delete(actorRef);
200-
const event = {
203+
system._sendRegistrationEvent({
201204
type: `@xstate.actor.unregister`,
202205
systemId: systemId as string,
203206
actorRef: actorRef as T['actors'][keyof T['actors']]
204-
} as const;
205-
registrationObservers.forEach((listener) => {
206-
listener.next?.(event);
207-
});
207+
} as const);
208208
}
209209
},
210210
get: (systemId) => {
@@ -268,6 +268,9 @@ export function createSystem<T extends ActorSystemInfo>(
268268
(observer) => observer.next?.(resolvedInspectionEvent)
269269
);
270270
},
271+
_sendRegistrationEvent: (event) => {
272+
registrationObservers.forEach((observer) => observer.next?.(event));
273+
},
271274
_relay: (source, target, event) => {
272275
system._sendInspectionEvent({
273276
type: '@xstate.event',

0 commit comments

Comments
 (0)