From 631a39aecacf6e62ddc13ad4c8f3c81a0f5f49c7 Mon Sep 17 00:00:00 2001 From: Melonai Date: Thu, 3 Jun 2021 15:37:52 +0200 Subject: Remove circular channel dependency --- assets/src/network/channel/connection.ts | 16 +++++++--------- assets/src/network/channel/messages/handler.ts | 6 ++++-- 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( token: string | null, handler: Handler ): UnregisterHandler { - return registerTokenHandler(connection.handlers, event, token, handler); + return registerTokenHandler( + connection.handlers, + connection.channel, + event, + token, + handler + ); } export function on( @@ -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( handlers: Handlers, + channel: Channel, event: string, token: string | null, handler: Handler @@ -35,7 +36,7 @@ export function registerTokenHandler( handlers[event] = eventHandler; - registerNewEvent(eventHandler, event); + registerNewEvent(channel, eventHandler, event); } let unregister: UnregisterHandler; @@ -61,6 +62,7 @@ export function registerTokenHandler( } function registerNewEvent( + channel: Channel, eventHandler: EventHandler, event: string ) { @@ -68,7 +70,7 @@ function registerNewEvent( handleEvent(eventHandler, data); }; - getChannel().on(event, callback); + channel.on(event, callback); } function handleEvent( -- cgit 1.4.1