about summary refs log tree commit diff
path: root/assets/src
diff options
context:
space:
mode:
authorMelonai <einebeere@gmail.com>2021-06-03 15:37:52 +0200
committerMelonai <einebeere@gmail.com>2021-06-03 15:37:52 +0200
commit631a39aecacf6e62ddc13ad4c8f3c81a0f5f49c7 (patch)
treef2a457b8dcea5a272ab0bdc13f5fe6dde7f1fd28 /assets/src
parent1348f3402c9c15c37501c7cf48f6c63ae7f8c1d8 (diff)
downloadrook-631a39aecacf6e62ddc13ad4c8f3c81a0f5f49c7.tar.zst
rook-631a39aecacf6e62ddc13ad4c8f3c81a0f5f49c7.zip
Remove circular channel dependency
Diffstat (limited to 'assets/src')
-rw-r--r--assets/src/network/channel/connection.ts16
-rw-r--r--assets/src/network/channel/messages/handler.ts6
2 files changed, 11 insertions, 11 deletions
diff --git a/assets/src/network/channel/connection.ts b/assets/src/network/channel/connection.ts
index 6d6f3de..59eb633 100644
--- a/assets/src/network/channel/connection.ts
+++ b/assets/src/network/channel/connection.ts
@@ -69,7 +69,13 @@ export function onWithToken<Message extends AnyMessage>(
     token: string | null,
     handler: Handler<Message>
 ): UnregisterHandler {
-    return registerTokenHandler(connection.handlers, event, token, handler);
+    return registerTokenHandler(
+        connection.handlers,
+        connection.channel,
+        event,
+        token,
+        handler
+    );
 }
 
 export function on<Message extends AnyMessage>(
@@ -87,14 +93,6 @@ export function getOwnToken(): string {
     return connection.token;
 }
 
-export function getChannel(): Channel {
-    if (connection.state <= ConnectionState.FETCHING_TOKEN) {
-        throw new Error("There is no channel yet.");
-    }
-
-    return connection.channel;
-}
-
 function updateState(state: ConnectionState) {
     // TODO: Notify state listeners
     connection.state = state;
diff --git a/assets/src/network/channel/messages/handler.ts b/assets/src/network/channel/messages/handler.ts
index 5cfe327..f7a00d2 100644
--- a/assets/src/network/channel/messages/handler.ts
+++ b/assets/src/network/channel/messages/handler.ts
@@ -20,6 +20,7 @@ export type UnregisterHandler = () => void;
 
 export function registerTokenHandler<Message extends AnyMessage>(
     handlers: Handlers,
+    channel: Channel,
     event: string,
     token: string | null,
     handler: Handler<Message>
@@ -35,7 +36,7 @@ export function registerTokenHandler<Message extends AnyMessage>(
 
         handlers[event] = eventHandler;
 
-        registerNewEvent<Message>(eventHandler, event);
+        registerNewEvent<Message>(channel, eventHandler, event);
     }
 
     let unregister: UnregisterHandler;
@@ -61,6 +62,7 @@ export function registerTokenHandler<Message extends AnyMessage>(
 }
 
 function registerNewEvent<Message extends AnyMessage>(
+    channel: Channel,
     eventHandler: EventHandler<Message>,
     event: string
 ) {
@@ -68,7 +70,7 @@ function registerNewEvent<Message extends AnyMessage>(
         handleEvent<Message>(eventHandler, data);
     };
 
-    getChannel().on(event, callback);
+    channel.on(event, callback);
 }
 
 function handleEvent<Message extends AnyMessage>(