From 8fe41fbba4d629d89560a9efcce8116025679bfd Mon Sep 17 00:00:00 2001 From: Mel Date: Tue, 7 Dec 2021 23:56:32 +0100 Subject: Nicer names --- assets/src/network/channel/connection.ts | 12 +++---- .../src/network/channel/messages/event_handler.ts | 40 ++++++++++++---------- assets/src/network/channel/request_connection.ts | 4 +++ assets/src/network/channel/share_connection.ts | 4 +-- 4 files changed, 34 insertions(+), 26 deletions(-) (limited to 'assets/src/network/channel') diff --git a/assets/src/network/channel/connection.ts b/assets/src/network/channel/connection.ts index 7e9b13c..04ff6e8 100644 --- a/assets/src/network/channel/connection.ts +++ b/assets/src/network/channel/connection.ts @@ -1,10 +1,10 @@ import { Channel, Push, Socket } from "phoenix"; import { get, Readable, writable, Writable } from "svelte/store"; import { - Handler, + HandlerFn, EventHandler, registerHandlerForSpecificToken, - Unregister, + UnregisterFn, registerHandler, } from "./messages/event_handler"; import type { AnyMessage, TokenizedMessage } from "./messages/messages"; @@ -54,8 +54,8 @@ export function send(event: string, data: any): Push { export function onWithToken( event: M["event_name"], token: string | null, - handler: Handler -): Unregister { + handler: HandlerFn +): UnregisterFn { return registerHandlerForSpecificToken( connection.handlers, connection.channel, @@ -67,8 +67,8 @@ export function onWithToken( export function on( event: M["event_name"], - handler: Handler -): Unregister { + handler: HandlerFn +): UnregisterFn { return registerHandler( connection.handlers, connection.channel, diff --git a/assets/src/network/channel/messages/event_handler.ts b/assets/src/network/channel/messages/event_handler.ts index fe950ea..d0936e0 100644 --- a/assets/src/network/channel/messages/event_handler.ts +++ b/assets/src/network/channel/messages/event_handler.ts @@ -10,45 +10,48 @@ import type { // handler for each event and token. // Every event can only have either one single handler, or multiple handlers for different tokens. export type EventHandler = { - [EN in EventName]?: MessageHandler>; + [EN in EventName]?: HandlerForMessage>; }; // A handler for a specific event and message. // A message handler can either be a single handler or can have multiple handlers for different tokens -type MessageHandler = +type HandlerForMessage = // A single handler - | { type: "single"; handler: Handler } + | { type: "single"; handler: HandlerFn } // A group of handlers for different tokens // Can only be used for messages which have a "token" field. | (M extends TokenizedMessage ? { type: "token"; - handler: TokenHandler; + handler: HandlerForTokenizedMessage; } : never); // A map of token to handler for a specific event. -export type TokenHandler = Map>; +export type HandlerForTokenizedMessage = Map< + string, + HandlerFn +>; // A function which handles a message for a specific event. -export type Handler = (message?: M) => void; +export type HandlerFn = (message?: M) => void; // A function that unregisters a single event handler. -export type Unregister = () => void; +export type UnregisterFn = () => void; // Adds a single handler for a specific event. export function registerHandler( eventHandler: EventHandler, channel: Channel, event: M["event_name"], - handler: Handler + handler: HandlerFn ) { - const messageHandler: MessageHandler = { + const messageHandler: HandlerForMessage = { type: "single", handler, }; - let unregisterChannelEvent: Unregister | null = null; + let unregisterChannelEvent: UnregisterFn | null = null; if (typeof eventHandler[event] === "undefined") { // Register a new event handler, since this is the first handler for this event unregisterChannelEvent = registerNewEvent( @@ -85,8 +88,8 @@ export function registerHandlerForSpecificToken( channel: Channel, event: M["event_name"], token: string, - handler: Handler -): Unregister { + handler: HandlerFn +): UnregisterFn { const messageHandler = eventHandler[event]; if (typeof messageHandler === "undefined") { @@ -94,7 +97,7 @@ export function registerHandlerForSpecificToken( // @ts-ignore eventHandler[event] = { type: "token", - handler: new Map>(), + handler: new Map>(), }; // @ts-ignore registerNewEvent(channel, eventHandler[event], event); @@ -110,7 +113,8 @@ export function registerHandlerForSpecificToken( } // @ts-ignore This shoudl be valid, as we derive the event name from the message type. - const tokenHandler: TokenHandler = eventHandler[event].handler; + const tokenHandler: HandlerForTokenizedMessage = + eventHandler[event].handler; tokenHandler.set(token, handler); return () => { @@ -128,9 +132,9 @@ export function registerHandlerForSpecificToken( // Adds a callback for a new event function registerNewEvent( channel: Channel, - messageHandler: MessageHandler, + messageHandler: HandlerForMessage, event: M["event_name"] -): Unregister { +): UnregisterFn { const callback = (data: M) => { // Add event_name to message, so the type definitions match const message = { event_name: event, ...data }; @@ -143,7 +147,7 @@ function registerNewEvent( } function onEvent( - messageHandler: MessageHandler, + messageHandler: HandlerForMessage, message: M ) { if (messageHandler.type === "token") { @@ -152,7 +156,7 @@ function onEvent( const handler = messageHandler.handler.get(token); if (typeof handler !== "undefined") { - (handler as Handler)(message); + (handler as HandlerFn)(message); } else { console.warn(`Received message for unknown token: ${token}`); } diff --git a/assets/src/network/channel/request_connection.ts b/assets/src/network/channel/request_connection.ts index 1b873d3..aef5300 100644 --- a/assets/src/network/channel/request_connection.ts +++ b/assets/src/network/channel/request_connection.ts @@ -27,6 +27,10 @@ export async function startRequestConnection(ownRequest: OwnRequest) { onRequestAccepted(message, ownRequest) ); + on("new_request", (message) => { + message.event_name + }); + on("share_cancelled", (message: ShareCancelledMessage) => onShareCancelled(message, ownRequest) ); diff --git a/assets/src/network/channel/share_connection.ts b/assets/src/network/channel/share_connection.ts index bdc2b8e..ac6dfbf 100644 --- a/assets/src/network/channel/share_connection.ts +++ b/assets/src/network/channel/share_connection.ts @@ -7,7 +7,7 @@ import { start, updateState, } from "./connection"; -import type { Unregister } from "./messages/event_handler"; +import type { UnregisterFn } from "./messages/event_handler"; import type { NewRequestMessage, RequestCancelledMessage, @@ -54,7 +54,7 @@ function onNewRequest(message: NewRequestMessage) { function onRequestCancelled( message: RequestCancelledMessage, - unregister: Unregister + unregister: UnregisterFn ) { const token = message.token; requests.removeRequest(token); -- cgit 1.4.1