From a445fdd20d32e68c71fc41daaa451586f15e009c Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 21 Mar 2023 12:36:22 -0400 Subject: [PATCH] Cleanup @k8slens/messaging and friends - To fix type errors Signed-off-by: Sebastian Malton --- .../features/actual/channel.no-coverage.ts | 5 -- .../agnostic/src/features/actual/index.ts | 2 - .../listening-of-channels.injectable.ts | 15 +++-- ...equest-channel-listener-injection-token.ts | 7 ++- .../get-message-bridge-fake.ts | 55 +++++++++++-------- 5 files changed, 46 insertions(+), 38 deletions(-) delete mode 100644 packages/technical-features/messaging/agnostic/src/features/actual/channel.no-coverage.ts diff --git a/packages/technical-features/messaging/agnostic/src/features/actual/channel.no-coverage.ts b/packages/technical-features/messaging/agnostic/src/features/actual/channel.no-coverage.ts deleted file mode 100644 index 62a2ea1490..0000000000 --- a/packages/technical-features/messaging/agnostic/src/features/actual/channel.no-coverage.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface Channel { - id: string; - _messageTemplate?: MessageTemplate; - _returnTemplate?: ReturnTemplate; -} diff --git a/packages/technical-features/messaging/agnostic/src/features/actual/index.ts b/packages/technical-features/messaging/agnostic/src/features/actual/index.ts index e8209f26f0..f85542c954 100644 --- a/packages/technical-features/messaging/agnostic/src/features/actual/index.ts +++ b/packages/technical-features/messaging/agnostic/src/features/actual/index.ts @@ -6,8 +6,6 @@ export { getMessageChannel } from "./message/get-message-channel"; export { requestFromChannelInjectionToken } from "./request/request-from-channel-injection-token"; -export type { Channel } from "./channel.no-coverage"; - export { sendMessageToChannelInjectionToken } from "./message/message-to-channel-injection-token"; export type { SendMessageToChannel } from "./message/message-to-channel-injection-token"; diff --git a/packages/technical-features/messaging/agnostic/src/features/actual/listening-of-channels/listening-of-channels.injectable.ts b/packages/technical-features/messaging/agnostic/src/features/actual/listening-of-channels/listening-of-channels.injectable.ts index c28d6cbc5a..9040939f06 100644 --- a/packages/technical-features/messaging/agnostic/src/features/actual/listening-of-channels/listening-of-channels.injectable.ts +++ b/packages/technical-features/messaging/agnostic/src/features/actual/listening-of-channels/listening-of-channels.injectable.ts @@ -6,17 +6,24 @@ import { getStartableStoppable, StartableStoppable } from "@k8slens/startable-st import { computedInjectManyInjectable } from "@ogre-tools/injectable-extension-for-mobx"; import { IComputedValue, reaction } from "mobx"; -import { messageChannelListenerInjectionToken } from "../message/message-channel-listener-injection-token"; -import { requestChannelListenerInjectionToken } from "../request/request-channel-listener-injection-token"; +import { + MessageChannel, + messageChannelListenerInjectionToken, +} from "../message/message-channel-listener-injection-token"; +import { + RequestChannel, + requestChannelListenerInjectionToken, +} from "../request/request-channel-listener-injection-token"; import { enlistRequestChannelListenerInjectionToken } from "../request/enlist-request-channel-listener-injection-token"; -import type { Channel } from "../channel.no-coverage"; export type ListeningOfChannels = StartableStoppable; export const listeningOfChannelsInjectionToken = getInjectionToken({ id: "listening-of-channels-injection-token", }); -const listening = }>( +const listening = < + T extends { id: string; channel: MessageChannel | RequestChannel }, +>( channelListeners: IComputedValue, enlistChannelListener: (listener: T) => () => void, getId: (listener: T) => string, diff --git a/packages/technical-features/messaging/agnostic/src/features/actual/request/enlist-request-channel-listener-injection-token.ts b/packages/technical-features/messaging/agnostic/src/features/actual/request/enlist-request-channel-listener-injection-token.ts index cdb3ac97d5..7f2a04a78d 100644 --- a/packages/technical-features/messaging/agnostic/src/features/actual/request/enlist-request-channel-listener-injection-token.ts +++ b/packages/technical-features/messaging/agnostic/src/features/actual/request/enlist-request-channel-listener-injection-token.ts @@ -1,3 +1,4 @@ +import type { Disposer } from "@k8slens/utilities/index"; import { getInjectionToken } from "@ogre-tools/injectable"; import type { @@ -5,9 +6,9 @@ import type { RequestChannelListener, } from "./request-channel-listener-injection-token"; -export type EnlistRequestChannelListener = ( - listener: RequestChannelListener>, -) => () => void; +export type EnlistRequestChannelListener = ( + listener: RequestChannelListener>, +) => Disposer; export const enlistRequestChannelListenerInjectionToken = getInjectionToken({ diff --git a/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.ts b/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.ts index ef8eed6461..8feb31dcd2 100644 --- a/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.ts +++ b/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.ts @@ -1,5 +1,11 @@ import type { DiContainer } from "@ogre-tools/injectable"; -import type { Channel, MessageChannelHandler, RequestChannelHandler } from "@k8slens/messaging"; +import type { + MessageChannel, + MessageChannelHandler, + MessageChannelListener, + RequestChannel, + RequestChannelHandler, +} from "@k8slens/messaging"; import { enlistMessageChannelListenerInjectionToken, @@ -20,6 +26,8 @@ export type MessageBridgeFake = { setAsync: (value: boolean) => void; }; +type MessageHandlers = Set>>; + const overrideMessaging = ({ di, messageListenersByDi, @@ -28,13 +36,13 @@ const overrideMessaging = ({ }: { di: DiContainer; - messageListenersByDi: Map>>>; + messageListenersByDi: Map>; messagePropagationBuffer: Set<{ resolve: () => Promise }>; getAsyncModeStatus: () => boolean; }) => { - const messageHandlersByChannel = new Map>>(); + const messageHandlersByChannel = new Map(); messageListenersByDi.set(di, messageHandlersByChannel); @@ -64,30 +72,36 @@ const overrideMessaging = ({ }); }); - di.override(enlistMessageChannelListenerInjectionToken, () => (listener) => { - if (!messageHandlersByChannel.has(listener.channel.id)) { - messageHandlersByChannel.set(listener.channel.id, new Set()); - } + di.override( + enlistMessageChannelListenerInjectionToken, + () => + (listener: MessageChannelListener>) => { + if (!messageHandlersByChannel.has(listener.channel.id)) { + messageHandlersByChannel.set(listener.channel.id, new Set()); + } - const handlerSet = messageHandlersByChannel.get(listener.channel.id); + const handlerSet = messageHandlersByChannel.get(listener.channel.id); - handlerSet?.add(listener.handler); + handlerSet?.add(listener.handler); - return () => { - handlerSet?.delete(listener.handler); - }; - }); + return () => { + handlerSet?.delete(listener.handler); + }; + }, + ); }; +type RequestHandlers = Set>>; + const overrideRequesting = ({ di, requestListenersByDi, }: { di: DiContainer; - requestListenersByDi: Map>>>; + requestListenersByDi: Map>; }) => { - const requestHandlersByChannel = new Map>>(); + const requestHandlersByChannel = new Map(); requestListenersByDi.set(di, requestHandlersByChannel); @@ -141,15 +155,8 @@ const overrideRequesting = ({ }; export const getMessageBridgeFake = (): MessageBridgeFake => { - const messageListenersByDi = new Map< - DiContainer, - Map>> - >(); - - const requestListenersByDi = new Map< - DiContainer, - Map>> - >(); + const messageListenersByDi = new Map>(); + const requestListenersByDi = new Map>(); const messagePropagationBuffer = new Set void>>();