aboutsummaryrefslogtreecommitdiff
path: root/assets/src/network/channel
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/network/channel
parent1348f3402c9c15c37501c7cf48f6c63ae7f8c1d8 (diff)
downloadrook-631a39aecacf6e62ddc13ad4c8f3c81a0f5f49c7.tar.zst
rook-631a39aecacf6e62ddc13ad4c8f3c81a0f5f49c7.zip
Remove circular channel dependency
Diffstat (limited to 'assets/src/network/channel')
-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>(