diff options
| author | Mel <einebeere@gmail.com> | 2021-12-07 23:56:32 +0100 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2021-12-07 23:56:32 +0100 |
| commit | 8fe41fbba4d629d89560a9efcce8116025679bfd (patch) | |
| tree | ce31ee6a8dd60da1d9c9e584d66d6579124617df | |
| parent | e71bc8c4e1d5f29ca3842b29f04e07672f6c949a (diff) | |
| download | rook-8fe41fbba4d629d89560a9efcce8116025679bfd.tar.zst rook-8fe41fbba4d629d89560a9efcce8116025679bfd.zip | |
Nicer names
| -rw-r--r-- | assets/src/network/channel/connection.ts | 12 | ||||
| -rw-r--r-- | assets/src/network/channel/messages/event_handler.ts | 40 | ||||
| -rw-r--r-- | assets/src/network/channel/request_connection.ts | 4 | ||||
| -rw-r--r-- | assets/src/network/channel/share_connection.ts | 4 | ||||
| -rw-r--r-- | assets/src/network/transfer/share_transfer.ts | 6 | ||||
| -rw-r--r-- | assets/src/network/transfer/transfer.ts | 4 |
6 files changed, 39 insertions, 31 deletions
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<M extends TokenizedMessage>( event: M["event_name"], token: string | null, - handler: Handler<M> -): Unregister { + handler: HandlerFn<M> +): UnregisterFn { return registerHandlerForSpecificToken( connection.handlers, connection.channel, @@ -67,8 +67,8 @@ export function onWithToken<M extends TokenizedMessage>( export function on<M extends AnyMessage>( event: M["event_name"], - handler: Handler<M> -): Unregister { + handler: HandlerFn<M> +): 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<MessageForEvent<EN>>; + [EN in EventName]?: HandlerForMessage<MessageForEvent<EN>>; }; // 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<M extends AnyMessage> = +type HandlerForMessage<M extends AnyMessage> = // A single handler - | { type: "single"; handler: Handler<M> } + | { type: "single"; handler: HandlerFn<M> } // 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<M>; + handler: HandlerForTokenizedMessage<M>; } : never); // A map of token to handler for a specific event. -export type TokenHandler<M extends TokenizedMessage> = Map<string, Handler<M>>; +export type HandlerForTokenizedMessage<M extends TokenizedMessage> = Map< + string, + HandlerFn<M> +>; // A function which handles a message for a specific event. -export type Handler<M extends AnyMessage> = (message?: M) => void; +export type HandlerFn<M extends AnyMessage> = (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<M extends AnyMessage>( eventHandler: EventHandler, channel: Channel, event: M["event_name"], - handler: Handler<M> + handler: HandlerFn<M> ) { - const messageHandler: MessageHandler<M> = { + const messageHandler: HandlerForMessage<M> = { 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<M>( @@ -85,8 +88,8 @@ export function registerHandlerForSpecificToken<M extends TokenizedMessage>( channel: Channel, event: M["event_name"], token: string, - handler: Handler<M> -): Unregister { + handler: HandlerFn<M> +): UnregisterFn { const messageHandler = eventHandler[event]; if (typeof messageHandler === "undefined") { @@ -94,7 +97,7 @@ export function registerHandlerForSpecificToken<M extends TokenizedMessage>( // @ts-ignore eventHandler[event] = { type: "token", - handler: new Map<string, Handler<M>>(), + handler: new Map<string, HandlerFn<M>>(), }; // @ts-ignore registerNewEvent<M>(channel, eventHandler[event], event); @@ -110,7 +113,8 @@ export function registerHandlerForSpecificToken<M extends TokenizedMessage>( } // @ts-ignore This shoudl be valid, as we derive the event name from the message type. - const tokenHandler: TokenHandler<M> = eventHandler[event].handler; + const tokenHandler: HandlerForTokenizedMessage<M> = + eventHandler[event].handler; tokenHandler.set(token, handler); return () => { @@ -128,9 +132,9 @@ export function registerHandlerForSpecificToken<M extends TokenizedMessage>( // Adds a callback for a new event function registerNewEvent<M extends AnyMessage>( channel: Channel, - messageHandler: MessageHandler<M>, + messageHandler: HandlerForMessage<M>, 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<M extends AnyMessage>( } function onEvent<M extends AnyMessage>( - messageHandler: MessageHandler<M>, + messageHandler: HandlerForMessage<M>, message: M ) { if (messageHandler.type === "token") { @@ -152,7 +156,7 @@ function onEvent<M extends AnyMessage>( const handler = messageHandler.handler.get(token); if (typeof handler !== "undefined") { - (handler as Handler<M>)(message); + (handler as HandlerFn<M>)(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); diff --git a/assets/src/network/transfer/share_transfer.ts b/assets/src/network/transfer/share_transfer.ts index 0f88e04..f641a56 100644 --- a/assets/src/network/transfer/share_transfer.ts +++ b/assets/src/network/transfer/share_transfer.ts @@ -1,7 +1,7 @@ import { get } from "svelte/store"; import dataStore from "../../stores/data"; import { onWithToken, send } from "../channel/connection"; -import type { Unregister } from "../channel/messages/event_handler"; +import type { UnregisterFn } from "../channel/messages/event_handler"; import type { RequestIceCandidateMessage, ShareAcceptedMessage, @@ -34,7 +34,7 @@ export async function createOfferTransfer( type: offer.type, }); - const unregister: Unregister = onWithToken( + const unregister: UnregisterFn = onWithToken( "share_accepted", request_token, (message: ShareAcceptedMessage) => @@ -47,7 +47,7 @@ export async function createOfferTransfer( function onShareAccepted( transfer: Transfer, message: ShareAcceptedMessage, - unregister: Unregister + unregister: UnregisterFn ) { const token = message.token; diff --git a/assets/src/network/transfer/transfer.ts b/assets/src/network/transfer/transfer.ts index 27182be..e950589 100644 --- a/assets/src/network/transfer/transfer.ts +++ b/assets/src/network/transfer/transfer.ts @@ -1,7 +1,7 @@ import { Writable, writable } from "svelte/store"; import type { IncomingRequest } from "../../models/incoming_request"; import type { OwnRequest } from "../../models/own_request"; -import type { Unregister } from "../channel/messages/event_handler"; +import type { UnregisterFn } from "../channel/messages/event_handler"; import type { RequestIceCandidateMessage, ShareIceCandidateMessage, @@ -85,7 +85,7 @@ export function onIncomingIceCandidate( export function unregisterIceOnComplete( transfer: Transfer, - unregister: Unregister + unregister: UnregisterFn ) { transfer.pc.onicegatheringstatechange = event => { const connection = event.target as any; |
