From 251cba56d9103c9ac38f9b98b69ee953ce23111e Mon Sep 17 00:00:00 2001 From: Melonai Date: Wed, 14 Jul 2021 19:36:29 +0200 Subject: Started better typing for message handler --- assets/src/network/channel/connection.ts | 38 ++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'assets/src/network/channel/connection.ts') diff --git a/assets/src/network/channel/connection.ts b/assets/src/network/channel/connection.ts index 59e07e8..7e9b13c 100644 --- a/assets/src/network/channel/connection.ts +++ b/assets/src/network/channel/connection.ts @@ -2,11 +2,12 @@ import { Channel, Push, Socket } from "phoenix"; import { get, Readable, writable, Writable } from "svelte/store"; import { Handler, - Handlers, - registerTokenHandler, - UnregisterHandler, -} from "./messages/handler"; -import type { AnyMessage } from "./messages/messages"; + EventHandler, + registerHandlerForSpecificToken, + Unregister, + registerHandler, +} from "./messages/event_handler"; +import type { AnyMessage, TokenizedMessage } from "./messages/messages"; import { connectSocket, fetchToken } from "./socket"; export enum ConnectionState { @@ -22,7 +23,7 @@ export type Connection = { channel: Channel | null; token: string | null; state: Writable; - handlers: Handlers; + handlers: EventHandler; }; const connection: Connection = { @@ -50,12 +51,12 @@ export function send(event: string, data: any): Push { return connection.channel.push(event, data); } -export function onWithToken( - event: string, +export function onWithToken( + event: M["event_name"], token: string | null, - handler: Handler -): UnregisterHandler { - return registerTokenHandler( + handler: Handler +): Unregister { + return registerHandlerForSpecificToken( connection.handlers, connection.channel, event, @@ -64,11 +65,16 @@ export function onWithToken( ); } -export function on( - event: string, - handler: Handler -): UnregisterHandler { - return onWithToken(event, null, handler); +export function on( + event: M["event_name"], + handler: Handler +): Unregister { + return registerHandler( + connection.handlers, + connection.channel, + event, + handler + ); } export function getOwnToken(): string { -- cgit 1.4.1