Skip to content

Commit

Permalink
reuse subscribable type
Browse files Browse the repository at this point in the history
  • Loading branch information
cevr committed Jan 15, 2024
1 parent d9bd505 commit 69fe023
Showing 1 changed file with 9 additions and 40 deletions.
49 changes: 9 additions & 40 deletions packages/core/src/system.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
AnyActorRef,
Observer,
Snapshot,
Subscription,
Subscribable,
HomomorphicOmit,
EventObject
} from './types.ts';
Expand Down Expand Up @@ -47,7 +47,13 @@ function createScheduledEventId(
return `${actorRef.sessionId}.${id}` as ScheduledEventId;
}

export interface ActorSystem<T extends ActorSystemInfo> {
export interface ActorSystem<T extends ActorSystemInfo>
extends Subscribable<
RegistrationEvent<
T['actors'][keyof T['actors']],
keyof T['actors'] & string
>
> {
/**
* @internal
*/
Expand All @@ -65,43 +71,6 @@ export interface ActorSystem<T extends ActorSystemInfo> {
*/
_set: <K extends keyof T['actors']>(key: K, actorRef: T['actors'][K]) => void;
get: <K extends keyof T['actors']>(key: K) => T['actors'][K] | undefined;
subscribe: {
(
observer: Observer<
RegistrationEvent<
T['actors'][keyof T['actors']],
keyof T['actors'] & string
>
>
): Subscription;
(
nextListener?: (
event: RegistrationEvent<
T['actors'][keyof T['actors']],
keyof T['actors'] & string
>
) => void,
errorListener?: (error: any) => void,
completeListener?: () => void
): Subscription;
(
nextListenerOrObserver?:
| ((
event: RegistrationEvent<
T['actors'][keyof T['actors']],
keyof T['actors'] & string
>
) => void)
| Observer<
RegistrationEvent<
T['actors'][keyof T['actors']],
keyof T['actors'] & string
>
>,
errorListener?: (error: any) => void,
completeListener?: () => void
): Subscription;
};
inspect: (observer: Observer<InspectionEvent>) => void;
/**
* @internal
Expand Down Expand Up @@ -242,7 +211,7 @@ export function createSystem<T extends ActorSystemInfo>(
return keyedActors.get(systemId) as T['actors'][any];
},
subscribe: (
nextListenerOrObserver?:
nextListenerOrObserver:
| ((event: RegistrationEvent<T['actors'][keyof T['actors']]>) => void)
| Observer<RegistrationEvent<T['actors'][keyof T['actors']]>>,
errorListener?: (error: any) => void,
Expand Down

0 comments on commit 69fe023

Please sign in to comment.