From 11a302fc752213e7c3456cbe1220478158ada08e Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Wed, 12 Oct 2022 09:19:24 -0400 Subject: [PATCH] Move message channels to changed signature too Signed-off-by: Sebastian Malton --- ...essage-channel-listener-injection-token.ts | 11 ++++++---- .../sync-box/channel-listener.injectable.ts | 5 +++-- .../handler.global-override-for-injectable.ts | 9 --------- .../renderer/handler.injectable.ts | 18 ----------------- ...listener.global-override-for-injectable.ts | 13 ++++++++++++ .../renderer/register-listener.injectable.ts | 5 +++-- ...-and-install-update-listener.injectable.ts | 3 ++- .../channel-listener.injectable.ts | 10 ++++++++-- .../handler.injectable.ts | 20 ------------------- 9 files changed, 36 insertions(+), 58 deletions(-) delete mode 100644 src/features/navigation/reload-page/renderer/handler.global-override-for-injectable.ts delete mode 100644 src/features/navigation/reload-page/renderer/handler.injectable.ts create mode 100644 src/features/navigation/reload-page/renderer/register-listener.global-override-for-injectable.ts delete mode 100644 src/main/start-main-application/runnables/root-frame-has-rendered/handler.injectable.ts diff --git a/src/common/utils/channel/message-channel-listener-injection-token.ts b/src/common/utils/channel/message-channel-listener-injection-token.ts index dc588791d5..5bfc45a82d 100644 --- a/src/common/utils/channel/message-channel-listener-injection-token.ts +++ b/src/common/utils/channel/message-channel-listener-injection-token.ts @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { Injectable } from "@ogre-tools/injectable"; +import type { DiContainerForInjection } from "@ogre-tools/injectable"; import { getInjectable, getInjectionToken } from "@ogre-tools/injectable"; export interface MessageChannel { @@ -29,8 +29,10 @@ export interface GetMessageChannelListenerInfo< Channel extends MessageChannel, Message, > { + id: string; channel: Channel; - handlerInjectable: Injectable, unknown, void>; + handler: (di: DiContainerForInjection) => MessageChannelHandler; + causesSideEffects?: boolean; } export function getMessageChannelListenerInjectable< @@ -38,11 +40,12 @@ export function getMessageChannelListenerInjectable< Message, >(info: GetMessageChannelListenerInfo) { return getInjectable({ - id: `${info.channel.id}-listener`, + id: `${info.channel.id}-listener-${info.id}`, instantiate: (di) => ({ channel: info.channel, - handler: di.inject(info.handlerInjectable), + handler: info.handler(di), }), injectionToken: messageChannelListenerInjectionToken, + causesSideEffects: info.causesSideEffects, }); } diff --git a/src/common/utils/sync-box/channel-listener.injectable.ts b/src/common/utils/sync-box/channel-listener.injectable.ts index 2b2ae4da37..a97d95d726 100644 --- a/src/common/utils/sync-box/channel-listener.injectable.ts +++ b/src/common/utils/sync-box/channel-listener.injectable.ts @@ -4,11 +4,12 @@ */ import { syncBoxChannel } from "./channels"; import { getMessageChannelListenerInjectable } from "../channel/message-channel-listener-injection-token"; -import syncBoxChannelHandlerInjectable from "./handler.injectable"; +import syncBoxStateInjectable from "./sync-box-state.injectable"; const syncBoxChannelListenerInjectable = getMessageChannelListenerInjectable({ + id: "init", channel: syncBoxChannel, - handlerInjectable: syncBoxChannelHandlerInjectable, + handler: (di) => ({ id, value }) => di.inject(syncBoxStateInjectable, id).set(value), }); export default syncBoxChannelListenerInjectable; diff --git a/src/features/navigation/reload-page/renderer/handler.global-override-for-injectable.ts b/src/features/navigation/reload-page/renderer/handler.global-override-for-injectable.ts deleted file mode 100644 index 3a4c13b694..0000000000 --- a/src/features/navigation/reload-page/renderer/handler.global-override-for-injectable.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import { getGlobalOverride } from "../../../../common/test-utils/get-global-override"; -import reloadPageHandlerInjectable from "./handler.injectable"; - -export default getGlobalOverride(reloadPageHandlerInjectable, () => () => {}); diff --git a/src/features/navigation/reload-page/renderer/handler.injectable.ts b/src/features/navigation/reload-page/renderer/handler.injectable.ts deleted file mode 100644 index c2fbd71924..0000000000 --- a/src/features/navigation/reload-page/renderer/handler.injectable.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import { getInjectable } from "@ogre-tools/injectable"; -import type { MessageChannelHandler } from "../../../../common/utils/channel/message-channel-listener-injection-token"; -import type { ReloadPageChannel } from "../common/channel"; - -const reloadPageHandlerInjectable = getInjectable({ - id: "reload-page-handler", - instantiate: (): MessageChannelHandler => { - return () => location.reload(); - }, - causesSideEffects: true, -}); - -export default reloadPageHandlerInjectable; diff --git a/src/features/navigation/reload-page/renderer/register-listener.global-override-for-injectable.ts b/src/features/navigation/reload-page/renderer/register-listener.global-override-for-injectable.ts new file mode 100644 index 0000000000..c0a43713b7 --- /dev/null +++ b/src/features/navigation/reload-page/renderer/register-listener.global-override-for-injectable.ts @@ -0,0 +1,13 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +import { getGlobalOverride } from "../../../../common/test-utils/get-global-override"; +import { reloadPageChannel } from "../common/channel"; +import reloadPageChannelListenerInjectable from "./register-listener.injectable"; + +export default getGlobalOverride(reloadPageChannelListenerInjectable, () => ({ + channel: reloadPageChannel, + handler: () => {}, +})); diff --git a/src/features/navigation/reload-page/renderer/register-listener.injectable.ts b/src/features/navigation/reload-page/renderer/register-listener.injectable.ts index c0c5da7290..a42d818729 100644 --- a/src/features/navigation/reload-page/renderer/register-listener.injectable.ts +++ b/src/features/navigation/reload-page/renderer/register-listener.injectable.ts @@ -4,11 +4,12 @@ */ import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { reloadPageChannel } from "../common/channel"; -import reloadPageHandlerInjectable from "./handler.injectable"; const reloadPageChannelListenerInjectable = getMessageChannelListenerInjectable({ + id: "handler", channel: reloadPageChannel, - handlerInjectable: reloadPageHandlerInjectable, + handler: () => () => location.reload(), + causesSideEffects: true, }); export default reloadPageChannelListenerInjectable; diff --git a/src/main/application-update/restart-and-install-update/restart-and-install-update-listener.injectable.ts b/src/main/application-update/restart-and-install-update/restart-and-install-update-listener.injectable.ts index 4d98e56267..87f232d9b1 100644 --- a/src/main/application-update/restart-and-install-update/restart-and-install-update-listener.injectable.ts +++ b/src/main/application-update/restart-and-install-update/restart-and-install-update-listener.injectable.ts @@ -7,8 +7,9 @@ import { getMessageChannelListenerInjectable } from "../../../common/utils/chann import quitAndInstallUpdateInjectable from "../quit-and-install-update.injectable"; const restartAndInstallUpdateListenerInjectable = getMessageChannelListenerInjectable({ + id: "restart", channel: restartAndInstallUpdateChannel, - handlerInjectable: quitAndInstallUpdateInjectable, + handler: (di) => di.inject(quitAndInstallUpdateInjectable), }); export default restartAndInstallUpdateListenerInjectable; diff --git a/src/main/start-main-application/runnables/root-frame-has-rendered/channel-listener.injectable.ts b/src/main/start-main-application/runnables/root-frame-has-rendered/channel-listener.injectable.ts index 12501b01f2..40f5ceb788 100644 --- a/src/main/start-main-application/runnables/root-frame-has-rendered/channel-listener.injectable.ts +++ b/src/main/start-main-application/runnables/root-frame-has-rendered/channel-listener.injectable.ts @@ -4,11 +4,17 @@ */ import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { rootFrameHasRenderedChannel } from "../../../../common/root-frame/root-frame-rendered-channel"; -import rootFrameHasRenderedHandlerInjectable from "./handler.injectable"; +import { runManyFor } from "../../../../common/runnable/run-many-for"; +import { afterRootFrameIsReadyInjectionToken } from "../../runnable-tokens/after-root-frame-is-ready-injection-token"; const rootFrameRenderedChannelListenerInjectable = getMessageChannelListenerInjectable({ + id: "action", channel: rootFrameHasRenderedChannel, - handlerInjectable: rootFrameHasRenderedHandlerInjectable, + handler: (di) => { + const runMany = runManyFor(di); + + return runMany(afterRootFrameIsReadyInjectionToken); + }, }); export default rootFrameRenderedChannelListenerInjectable; diff --git a/src/main/start-main-application/runnables/root-frame-has-rendered/handler.injectable.ts b/src/main/start-main-application/runnables/root-frame-has-rendered/handler.injectable.ts deleted file mode 100644 index 2b5881a025..0000000000 --- a/src/main/start-main-application/runnables/root-frame-has-rendered/handler.injectable.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { getInjectable } from "@ogre-tools/injectable"; -import type { RootFrameHasRenderedChannel } from "../../../../common/root-frame/root-frame-rendered-channel"; -import { runManyFor } from "../../../../common/runnable/run-many-for"; -import type { MessageChannelHandler } from "../../../../common/utils/channel/message-channel-listener-injection-token"; -import { afterRootFrameIsReadyInjectionToken } from "../../runnable-tokens/after-root-frame-is-ready-injection-token"; - -const rootFrameHasRenderedHandlerInjectable = getInjectable({ - id: "root-frame-has-rendered-handler", - instantiate: (di): MessageChannelHandler => { - const runMany = runManyFor(di); - - return runMany(afterRootFrameIsReadyInjectionToken); - }, -}); - -export default rootFrameHasRenderedHandlerInjectable;