1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Switch to using messaging from the Feature

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen 2023-03-14 10:56:32 +02:00
parent dbb87c231a
commit a8e5777b83
No known key found for this signature in database
GPG Key ID: 8C6CFB2FFFE8F68A
106 changed files with 266 additions and 270 deletions

View File

@ -328,6 +328,9 @@
"@k8slens/application": "^6.5.0-alpha.0", "@k8slens/application": "^6.5.0-alpha.0",
"@k8slens/application-for-electron-main": "^6.5.0-alpha.0", "@k8slens/application-for-electron-main": "^6.5.0-alpha.0",
"@k8slens/legacy-extensions": "^1.0.0-alpha.0", "@k8slens/legacy-extensions": "^1.0.0-alpha.0",
"@k8slens/messaging": "^1.0.0-alpha.1",
"@k8slens/messaging-for-main": "^1.0.0-alpha.1",
"@k8slens/messaging-for-renderer": "^1.0.0-alpha.1",
"@k8slens/run-many": "^1.0.0-alpha.1", "@k8slens/run-many": "^1.0.0-alpha.1",
"@k8slens/startable-stoppable": "^1.0.0-alpha.1", "@k8slens/startable-stoppable": "^1.0.0-alpha.1",
"@k8slens/test-utils": "^1.0.0-alpha.1", "@k8slens/test-utils": "^1.0.0-alpha.1",

View File

@ -3,11 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { AppPaths } from "./app-path-injection-token"; import type { AppPaths } from "./app-path-injection-token";
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
export type AppPathsChannel = RequestChannel<void, AppPaths>; export const appPathsChannel = getRequestChannel<void, AppPaths>('app-paths')
export const appPathsChannel: AppPathsChannel = {
id: "app-paths",
};

View File

@ -15,7 +15,7 @@ import type { GetConfigurationFileModel } from "../get-configuration-file-model/
import type { Logger } from "../logger"; import type { Logger } from "../logger";
import type { PersistStateToConfig } from "./save-to-file"; import type { PersistStateToConfig } from "./save-to-file";
import type { GetBasenameOfPath } from "../path/get-basename.injectable"; import type { GetBasenameOfPath } from "../path/get-basename.injectable";
import type { EnlistMessageChannelListener } from "../utils/channel/enlist-message-channel-listener-injection-token"; import type { EnlistMessageChannelListener } from "@k8slens/messaging";
import { toJS } from "../utils"; import { toJS } from "../utils";
export interface BaseStoreParams<T> extends Omit<ConfOptions<T>, "migrations"> { export interface BaseStoreParams<T> extends Omit<ConfOptions<T>, "migrations"> {
@ -108,6 +108,7 @@ export abstract class BaseStore<T extends object> {
this.params.syncOptions, this.params.syncOptions,
), ),
this.dependencies.enlistMessageChannelListener({ this.dependencies.enlistMessageChannelListener({
id: this.displayName,
channel: { channel: {
id: `${this.dependencies.ipcChannelPrefixes.local}:${config.path}`, id: `${this.dependencies.ipcChannelPrefixes.local}:${config.path}`,
}, },

View File

@ -4,6 +4,6 @@
*/ */
import type { SelfSignedCert } from "selfsigned"; import type { SelfSignedCert } from "selfsigned";
import { getRequestChannel } from "../utils/channel/get-request-channel"; import { getRequestChannel } from "@k8slens/messaging";
export const lensProxyCertificateChannel = getRequestChannel<void, SelfSignedCert>("request-lens-proxy-certificate"); export const lensProxyCertificateChannel = getRequestChannel<void, SelfSignedCert>("request-lens-proxy-certificate");

View File

@ -16,7 +16,7 @@ import { baseStoreIpcChannelPrefixesInjectionToken } from "../base-store/channel
import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../base-store/disable-sync"; import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../base-store/disable-sync";
import { persistStateToConfigInjectionToken } from "../base-store/save-to-file"; import { persistStateToConfigInjectionToken } from "../base-store/save-to-file";
import getBasenameOfPathInjectable from "../path/get-basename.injectable"; import getBasenameOfPathInjectable from "../path/get-basename.injectable";
import { enlistMessageChannelListenerInjectionToken } from "../utils/channel/enlist-message-channel-listener-injection-token"; import { enlistMessageChannelListenerInjectionToken } from "@k8slens/messaging";
const clusterStoreInjectable = getInjectable({ const clusterStoreInjectable = getInjectable({
id: "cluster-store", id: "cluster-store",

View File

@ -4,7 +4,7 @@
*/ */
import type { ClusterId } from "../cluster-types"; import type { ClusterId } from "../cluster-types";
import type { MessageChannel } from "../utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export const currentClusterMessageChannel: MessageChannel<ClusterId> = { export const currentClusterMessageChannel: MessageChannel<ClusterId> = {
id: "current-visible-cluster", id: "current-visible-cluster",

View File

@ -4,7 +4,7 @@
*/ */
import type { ClusterId } from "../cluster-types"; import type { ClusterId } from "../cluster-types";
import type { MessageChannel } from "../utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export const clusterVisibilityChannel: MessageChannel<ClusterId | null> = { export const clusterVisibilityChannel: MessageChannel<ClusterId | null> = {
id: "cluster-visibility", id: "cluster-visibility",

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { IpcRendererNavigationEvents } from "../ipc/navigation-events"; import { IpcRendererNavigationEvents } from "../ipc/navigation-events";
import type { MessageChannel } from "../utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export type AppNavigationChannel = MessageChannel<string>; export type AppNavigationChannel = MessageChannel<string>;

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { IpcRendererNavigationEvents } from "../ipc/navigation-events"; import { IpcRendererNavigationEvents } from "../ipc/navigation-events";
import type { MessageChannel } from "../utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export type ClusterFrameNavigationChannel = MessageChannel<string>; export type ClusterFrameNavigationChannel = MessageChannel<string>;

View File

@ -3,11 +3,10 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { HelmRepo } from "./helm-repo"; import type { HelmRepo } from "./helm-repo";
import type { AsyncResult } from "@k8slens/utilities"; import type { Result } from "@k8slens/utilities";
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
export type AddHelmRepositoryChannel = RequestChannel<HelmRepo, AsyncResult<void, string>>; export const addHelmRepositoryChannel = getRequestChannel<
HelmRepo,
export const addHelmRepositoryChannel: AddHelmRepositoryChannel = { Result<void, string>
id: "add-helm-repository-channel", >("add-helm-repository-channel");
};

View File

@ -4,10 +4,9 @@
*/ */
import type { HelmRepo } from "./helm-repo"; import type { HelmRepo } from "./helm-repo";
import type { AsyncResult } from "@k8slens/utilities"; import type { AsyncResult } from "@k8slens/utilities";
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
export type GetActiveHelmRepositoriesChannel = RequestChannel<void, AsyncResult<HelmRepo[]>>; export const getActiveHelmRepositoriesChannel = getRequestChannel<
void,
export const getActiveHelmRepositoriesChannel: GetActiveHelmRepositoriesChannel = { AsyncResult<HelmRepo[]>
id: "get-helm-active-list-repositories", >("get-helm-active-list-repositories");
};

View File

@ -3,11 +3,10 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { AsyncResult } from "@k8slens/utilities"; import type { AsyncResult } from "@k8slens/utilities";
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
import type { HelmRepo } from "./helm-repo"; import type { HelmRepo } from "./helm-repo";
export type RemoveHelmRepositoryChannel = RequestChannel<HelmRepo, AsyncResult<void, string>>; export const removeHelmRepositoryChannel = getRequestChannel<
HelmRepo,
export const removeHelmRepositoryChannel: RemoveHelmRepositoryChannel = { AsyncResult<void, string>
id: "remove-helm-repository-channel", >("remove-helm-repository-channel");
};

View File

@ -14,7 +14,7 @@ import { hotbarStoreMigrationInjectionToken } from "./migrations-token";
import getBasenameOfPathInjectable from "../path/get-basename.injectable"; import getBasenameOfPathInjectable from "../path/get-basename.injectable";
import { baseStoreIpcChannelPrefixesInjectionToken } from "../base-store/channel-prefix"; import { baseStoreIpcChannelPrefixesInjectionToken } from "../base-store/channel-prefix";
import { persistStateToConfigInjectionToken } from "../base-store/save-to-file"; import { persistStateToConfigInjectionToken } from "../base-store/save-to-file";
import { enlistMessageChannelListenerInjectionToken } from "../utils/channel/enlist-message-channel-listener-injection-token"; import { enlistMessageChannelListenerInjectionToken } from "@k8slens/messaging";
import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../base-store/disable-sync"; import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../base-store/disable-sync";
const hotbarStoreInjectable = getInjectable({ const hotbarStoreInjectable = getInjectable({

View File

@ -4,11 +4,9 @@
*/ */
import { getInjectionToken } from "@ogre-tools/injectable"; import { getInjectionToken } from "@ogre-tools/injectable";
import type { Asyncify } from "type-fest";
import type { RequestChannelHandler } from "../../main/utils/channel/channel-listeners/listener-tokens";
import type { ClusterId } from "../cluster-types"; import type { ClusterId } from "../cluster-types";
import type { AsyncResult } from "@k8slens/utilities"; import type { AsyncResult, Result } from "@k8slens/utilities";
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
export interface KubectlApplyAllArgs { export interface KubectlApplyAllArgs {
clusterId: ClusterId; clusterId: ClusterId;
@ -16,11 +14,12 @@ export interface KubectlApplyAllArgs {
extraArgs: string[]; extraArgs: string[];
} }
export const kubectlApplyAllChannel: RequestChannel<KubectlApplyAllArgs, AsyncResult<string, string>> = { export const kubectlApplyAllChannel = getRequestChannel<
id: "kubectl-apply-all", KubectlApplyAllArgs,
}; Result<string, string>
>("kubectl-apply-all");
export type KubectlApplyAll = Asyncify<RequestChannelHandler<typeof kubectlApplyAllChannel>>; export type KubectlApplyAll = (req: KubectlApplyAllArgs) => AsyncResult<string, string>
export const kubectlApplyAllInjectionToken = getInjectionToken<KubectlApplyAll>({ export const kubectlApplyAllInjectionToken = getInjectionToken<KubectlApplyAll>({
id: "kubectl-apply-all", id: "kubectl-apply-all",
@ -32,11 +31,12 @@ export interface KubectlDeleteAllArgs {
extraArgs: string[]; extraArgs: string[];
} }
export const kubectlDeleteAllChannel: RequestChannel<KubectlDeleteAllArgs, AsyncResult<string, string>> = { export const kubectlDeleteAllChannel = getRequestChannel<
id: "kubectl-delete-all", KubectlDeleteAllArgs,
}; Result<string, string>
>("kubectl-delete-all");
export type KubectlDeleteAll = Asyncify<RequestChannelHandler<typeof kubectlDeleteAllChannel>>; export type KubectlDeleteAll = (req: KubectlDeleteAllArgs) => AsyncResult<string, string>;
export const kubectlDeleteAllInjectionToken = getInjectionToken<KubectlDeleteAll>({ export const kubectlDeleteAllInjectionToken = getInjectionToken<KubectlDeleteAll>({
id: "kubectl-delete-all", id: "kubectl-delete-all",

View File

@ -2,7 +2,7 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { MessageChannel } from "../utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export type RootFrameHasRenderedChannel = MessageChannel<void>; export type RootFrameHasRenderedChannel = MessageChannel<void>;

View File

@ -16,7 +16,7 @@ import { baseStoreIpcChannelPrefixesInjectionToken } from "../base-store/channel
import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../base-store/disable-sync"; import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../base-store/disable-sync";
import { persistStateToConfigInjectionToken } from "../base-store/save-to-file"; import { persistStateToConfigInjectionToken } from "../base-store/save-to-file";
import getBasenameOfPathInjectable from "../path/get-basename.injectable"; import getBasenameOfPathInjectable from "../path/get-basename.injectable";
import { enlistMessageChannelListenerInjectionToken } from "../utils/channel/enlist-message-channel-listener-injection-token"; import { enlistMessageChannelListenerInjectionToken } from "@k8slens/messaging";
import userStorePreferenceDescriptorsInjectable from "./preference-descriptors.injectable"; import userStorePreferenceDescriptorsInjectable from "./preference-descriptors.injectable";
const userStoreInjectable = getInjectable({ const userStoreInjectable = getInjectable({

View File

@ -2,10 +2,8 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { RequestChannel } from "../channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
export type ResolveSystemProxyChannel = RequestChannel<string, string>; export const resolveSystemProxyChannel = getRequestChannel<string, string>(
"resolve-system-proxy-channel"
export const resolveSystemProxyChannel: ResolveSystemProxyChannel = { );
id: "resolve-system-proxy-channel",
};

View File

@ -3,13 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { syncBoxChannel } from "./channels"; import { syncBoxChannel } from "./channels";
import { getMessageChannelListenerInjectable } from "../channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import syncBoxStateInjectable from "./sync-box-state.injectable"; import syncBoxStateInjectable from "./sync-box-state.injectable";
const syncBoxChannelListenerInjectable = getMessageChannelListenerInjectable({ const syncBoxChannelListenerInjectable = getMessageChannelListenerInjectable({
id: "init", id: "init",
channel: syncBoxChannel, channel: syncBoxChannel,
handler: (di) => ({ id, value }) => di.inject(syncBoxStateInjectable, id).set(value), getHandler: (di) => ({ id, value }) => di.inject(syncBoxStateInjectable, id).set(value),
}); });
export default syncBoxChannelListenerInjectable; export default syncBoxChannelListenerInjectable;

View File

@ -2,20 +2,12 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { MessageChannel } from "../channel/message-channel-listener-injection-token"; import { getMessageChannel, getRequestChannel } from "@k8slens/messaging";
import type { RequestChannel } from "../channel/request-channel-listener-injection-token";
export type SyncBoxChannel = MessageChannel<{ id: string; value: any }>; export const syncBoxChannel =
getMessageChannel<{ id: string; value: any }>("sync-box-channel");
export const syncBoxChannel: SyncBoxChannel = { export const syncBoxInitialValueChannel = getRequestChannel<
id: "sync-box-channel",
};
export type SyncBoxInitialValueChannel = RequestChannel<
void, void,
{ id: string; value: any }[] { id: string; value: any }[]
>; >("sync-box-initial-value-channel");
export const syncBoxInitialValueChannel: SyncBoxInitialValueChannel = {
id: "sync-box-initial-value-channel",
};

View File

@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import type { IObservableValue } from "mobx"; import type { IObservableValue } from "mobx";
import { computed } from "mobx"; import { computed } from "mobx";
import { syncBoxChannel } from "./channels"; import { syncBoxChannel } from "./channels";
import { sendMessageToChannelInjectionToken } from "../channel/message-to-channel-injection-token"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import syncBoxStateInjectable from "./sync-box-state.injectable"; import syncBoxStateInjectable from "./sync-box-state.injectable";
import type { SyncBox } from "./sync-box-injection-token"; import type { SyncBox } from "./sync-box-injection-token";
import { toJS } from "../toJS"; import { toJS } from "../toJS";

View File

@ -1,19 +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 "../channel/message-channel-listener-injection-token";
import type { SyncBoxChannel } from "./channels";
import syncBoxStateInjectable from "./sync-box-state.injectable";
const syncBoxChannelHandlerInjectable = getInjectable({
id: "sync-box-channel-handler",
instantiate: (di): MessageChannelHandler<SyncBoxChannel> => {
const getSyncBoxState = (id: string) => di.inject(syncBoxStateInjectable, id);
return ({ id, value }) => getSyncBoxState(id)?.set(value);
},
});
export default syncBoxChannelHandlerInjectable;

View File

@ -7,7 +7,7 @@ import { getInjectionToken } from "@ogre-tools/injectable";
import { SemVer } from "semver"; import { SemVer } from "semver";
import type { InitializableState } from "../initializable-state/create"; import type { InitializableState } from "../initializable-state/create";
import { createInitializableState } from "../initializable-state/create"; import { createInitializableState } from "../initializable-state/create";
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token"; import type { RequestChannel } from "@k8slens/messaging";
export const buildVersionInjectionToken = getInjectionToken<InitializableState<string>>({ export const buildVersionInjectionToken = getInjectionToken<InitializableState<string>>({
id: "build-version-token", id: "build-version-token",

View File

@ -11,7 +11,7 @@ import { persistStateToConfigInjectionToken } from "../base-store/save-to-file";
import getConfigurationFileModelInjectable from "../get-configuration-file-model/get-configuration-file-model.injectable"; import getConfigurationFileModelInjectable from "../get-configuration-file-model/get-configuration-file-model.injectable";
import loggerInjectable from "../logger.injectable"; import loggerInjectable from "../logger.injectable";
import getBasenameOfPathInjectable from "../path/get-basename.injectable"; import getBasenameOfPathInjectable from "../path/get-basename.injectable";
import { enlistMessageChannelListenerInjectionToken } from "../utils/channel/enlist-message-channel-listener-injection-token"; import { enlistMessageChannelListenerInjectionToken } from "@k8slens/messaging";
import storeMigrationVersionInjectable from "../vars/store-migration-version.injectable"; import storeMigrationVersionInjectable from "../vars/store-migration-version.injectable";
import { weblinkStoreMigrationInjectionToken } from "./migration-token"; import { weblinkStoreMigrationInjectionToken } from "./migration-token";
import { WeblinkStore } from "./weblink-store"; import { WeblinkStore } from "./weblink-store";

View File

@ -12,7 +12,7 @@ import { baseStoreIpcChannelPrefixesInjectionToken } from "../../../common/base-
import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../../../common/base-store/disable-sync"; import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../../../common/base-store/disable-sync";
import { persistStateToConfigInjectionToken } from "../../../common/base-store/save-to-file"; import { persistStateToConfigInjectionToken } from "../../../common/base-store/save-to-file";
import getBasenameOfPathInjectable from "../../../common/path/get-basename.injectable"; import getBasenameOfPathInjectable from "../../../common/path/get-basename.injectable";
import { enlistMessageChannelListenerInjectionToken } from "../../../common/utils/channel/enlist-message-channel-listener-injection-token"; import { enlistMessageChannelListenerInjectionToken } from "@k8slens/messaging";
import ensureHashedDirectoryForExtensionInjectable from "./ensure-hashed-directory-for-extension.injectable"; import ensureHashedDirectoryForExtensionInjectable from "./ensure-hashed-directory-for-extension.injectable";
import { registeredExtensionsInjectable } from "./registered-extensions.injectable"; import { registeredExtensionsInjectable } from "./registered-extensions.injectable";

View File

@ -20,7 +20,7 @@ import { baseStoreIpcChannelPrefixesInjectionToken } from "../common/base-store/
import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../common/base-store/disable-sync"; import { shouldBaseStoreDisableSyncInIpcListenerInjectionToken } from "../common/base-store/disable-sync";
import { persistStateToConfigInjectionToken } from "../common/base-store/save-to-file"; import { persistStateToConfigInjectionToken } from "../common/base-store/save-to-file";
import getBasenameOfPathInjectable from "../common/path/get-basename.injectable"; import getBasenameOfPathInjectable from "../common/path/get-basename.injectable";
import { enlistMessageChannelListenerInjectionToken } from "../common/utils/channel/enlist-message-channel-listener-injection-token"; import { enlistMessageChannelListenerInjectionToken } from "@k8slens/messaging";
export interface ExtensionStoreParams<T extends object> extends BaseStoreParams<T> { export interface ExtensionStoreParams<T extends object> extends BaseStoreParams<T> {
migrations?: Migrations<T>; migrations?: Migrations<T>;

View File

@ -10,7 +10,7 @@ import { persistStateToConfigInjectionToken } from "../../common/base-store/save
import getConfigurationFileModelInjectable from "../../common/get-configuration-file-model/get-configuration-file-model.injectable"; import getConfigurationFileModelInjectable from "../../common/get-configuration-file-model/get-configuration-file-model.injectable";
import loggerInjectable from "../../common/logger.injectable"; import loggerInjectable from "../../common/logger.injectable";
import getBasenameOfPathInjectable from "../../common/path/get-basename.injectable"; import getBasenameOfPathInjectable from "../../common/path/get-basename.injectable";
import { enlistMessageChannelListenerInjectionToken } from "../../common/utils/channel/enlist-message-channel-listener-injection-token"; import { enlistMessageChannelListenerInjectionToken } from "@k8slens/messaging";
import storeMigrationVersionInjectable from "../../common/vars/store-migration-version.injectable"; import storeMigrationVersionInjectable from "../../common/vars/store-migration-version.injectable";
import { ExtensionsStore } from "./extensions-store"; import { ExtensionsStore } from "./extensions-store";

View File

@ -2,7 +2,7 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { MessageChannel } from "../../../common/utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export type RestartAndInstallUpdateChannel = MessageChannel<void>; export type RestartAndInstallUpdateChannel = MessageChannel<void>;

View File

@ -3,13 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { restartAndInstallUpdateChannel } from "../../common/restart-and-install-update-channel"; import { restartAndInstallUpdateChannel } from "../../common/restart-and-install-update-channel";
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import quitAndInstallUpdateInjectable from "../quit-and-install-update.injectable"; import quitAndInstallUpdateInjectable from "../quit-and-install-update.injectable";
const restartAndInstallUpdateListenerInjectable = getMessageChannelListenerInjectable({ const restartAndInstallUpdateListenerInjectable = getMessageChannelListenerInjectable({
id: "restart", id: "restart",
channel: restartAndInstallUpdateChannel, channel: restartAndInstallUpdateChannel,
handler: (di) => di.inject(quitAndInstallUpdateInjectable), getHandler: (di) => di.inject(quitAndInstallUpdateInjectable),
}); });
export default restartAndInstallUpdateListenerInjectable; export default restartAndInstallUpdateListenerInjectable;

View File

@ -4,13 +4,13 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { restartAndInstallUpdateChannel } from "../common/restart-and-install-update-channel"; import { restartAndInstallUpdateChannel } from "../common/restart-and-install-update-channel";
import messageToChannelInjectable from "../../../renderer/utils/channel/message-to-channel.injectable"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
const restartAndInstallUpdateInjectable = getInjectable({ const restartAndInstallUpdateInjectable = getInjectable({
id: "restart-and-install-update", id: "restart-and-install-update",
instantiate: (di) => { instantiate: (di) => {
const messageToChannel = di.inject(messageToChannelInjectable); const messageToChannel = di.inject(sendMessageToChannelInjectionToken);
return () => { return () => {
messageToChannel(restartAndInstallUpdateChannel); messageToChannel(restartAndInstallUpdateChannel);

View File

@ -2,7 +2,6 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getRequestChannel } from "@k8slens/messaging";
import { getRequestChannel } from "../../../common/utils/channel/get-request-channel";
export const casChannel = getRequestChannel<void, string[]>("certificate-authorities"); export const casChannel = getRequestChannel<void, string[]>("certificate-authorities");

View File

@ -8,6 +8,7 @@ import { casChannel } from "../common/channel";
import certificateAuthoritiesChannelListenerInjectable from "./channel-handler.injectable"; import certificateAuthoritiesChannelListenerInjectable from "./channel-handler.injectable";
export default getGlobalOverride(certificateAuthoritiesChannelListenerInjectable, () => ({ export default getGlobalOverride(certificateAuthoritiesChannelListenerInjectable, () => ({
id: 'certificate-authorities-channel-listener',
channel: casChannel, channel: casChannel,
handler: () => [], handler: () => [],
})); }));

View File

@ -2,14 +2,15 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getRequestChannelListenerInjectable } from "../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { casChannel } from "../common/channel"; import { casChannel } from "../common/channel";
import { globalAgent } from "https"; import { globalAgent } from "https";
import { isString } from "@k8slens/utilities"; import { isString } from "@k8slens/utilities";
const certificateAuthoritiesChannelListenerInjectable = getRequestChannelListenerInjectable({ const certificateAuthoritiesChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'certificate-authorities-channel-listener',
channel: casChannel, channel: casChannel,
handler: () => () => { getHandler: () => () => {
if (Array.isArray(globalAgent.options.ca)) { if (Array.isArray(globalAgent.options.ca)) {
return globalAgent.options.ca.filter(isString); return globalAgent.options.ca.filter(isString);
} }

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { requestFromChannelInjectionToken } from "../../../common/utils/channel/request-from-channel-injection-token"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { casChannel } from "../common/channel"; import { casChannel } from "../common/channel";
import { requestSystemCAsInjectionToken } from "../common/request-system-cas-token"; import { requestSystemCAsInjectionToken } from "../common/request-system-cas-token";

View File

@ -4,7 +4,7 @@
*/ */
import type { ClusterId } from "../../../../common/cluster-types"; import type { ClusterId } from "../../../../common/cluster-types";
import { getRequestChannel } from "../../../../common/utils/channel/get-request-channel"; import { getRequestChannel } from "@k8slens/messaging";
export interface ActivateCluster { export interface ActivateCluster {
clusterId: ClusterId; clusterId: ClusterId;

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectionToken } from "@ogre-tools/injectable"; import { getInjectionToken } from "@ogre-tools/injectable";
import type { ChannelRequester } from "../../../../common/utils/channel/request-from-channel-injection-token"; import type { ChannelRequester } from "@k8slens/messaging";
import type { activateClusterChannel, deactivateClusterChannel } from "./channels"; import type { activateClusterChannel, deactivateClusterChannel } from "./channels";
export type RequestClusterActivation = ChannelRequester<typeof activateClusterChannel>; export type RequestClusterActivation = ChannelRequester<typeof activateClusterChannel>;

View File

@ -2,13 +2,14 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { activateClusterChannel } from "../common/channels"; import { activateClusterChannel } from "../common/channels";
import requestClusterActivationInjectable from "./request-activation.injectable"; import requestClusterActivationInjectable from "./request-activation.injectable";
const activateClusterRequestChannelListenerInjectable = getRequestChannelListenerInjectable({ const activateClusterRequestChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'activate-cluster-request-channel-listener',
channel: activateClusterChannel, channel: activateClusterChannel,
handler: (di) => di.inject(requestClusterActivationInjectable), getHandler: (di) => di.inject(requestClusterActivationInjectable),
}); });
export default activateClusterRequestChannelListenerInjectable; export default activateClusterRequestChannelListenerInjectable;

View File

@ -2,13 +2,14 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { deactivateClusterChannel } from "../common/channels"; import { deactivateClusterChannel } from "../common/channels";
import requestClusterDeactivationInjectable from "./request-deactivation.injectable"; import requestClusterDeactivationInjectable from "./request-deactivation.injectable";
const clusterDeactivationRequestChannelListenerInjectable = getRequestChannelListenerInjectable({ const clusterDeactivationRequestChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'cluster-deactivation-request-channel-listener',
channel: deactivateClusterChannel, channel: deactivateClusterChannel,
handler: (di) => di.inject(requestClusterDeactivationInjectable), getHandler: (di) => di.inject(requestClusterDeactivationInjectable),
}); });
export default clusterDeactivationRequestChannelListenerInjectable; export default clusterDeactivationRequestChannelListenerInjectable;

View File

@ -3,14 +3,14 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { activateClusterChannel } from "../common/channels"; import { activateClusterChannel } from "../common/channels";
import { requestClusterActivationInjectionToken } from "../common/request-token"; import { requestClusterActivationInjectionToken } from "../common/request-token";
const requestClusterActivationInjectable = getInjectable({ const requestClusterActivationInjectable = getInjectable({
id: "request-cluster-activation", id: "request-cluster-activation",
instantiate: (di) => { instantiate: (di) => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return (req) => requestFromChannel(activateClusterChannel, req); return (req) => requestFromChannel(activateClusterChannel, req);
}, },

View File

@ -3,14 +3,14 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { deactivateClusterChannel } from "../common/channels"; import { deactivateClusterChannel } from "../common/channels";
import { requestClusterDeactivationInjectionToken } from "../common/request-token"; import { requestClusterDeactivationInjectionToken } from "../common/request-token";
const requestClusterDeactivationInjectable = getInjectable({ const requestClusterDeactivationInjectable = getInjectable({
id: "request-cluster-deactivation", id: "request-cluster-deactivation",
instantiate: (di) => { instantiate: (di) => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return (clusterId) => requestFromChannel(deactivateClusterChannel, clusterId); return (clusterId) => requestFromChannel(deactivateClusterChannel, clusterId);
}, },

View File

@ -3,10 +3,8 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { ClusterId } from "../../../../common/cluster-types"; import type { ClusterId } from "../../../../common/cluster-types";
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
export type ClearClusterAsDeletingChannel = RequestChannel<ClusterId, void>; export const clearClusterAsDeletingChannel = getRequestChannel<ClusterId, void>(
"clear-cluster-as-deleting"
export const clearClusterAsDeletingChannel: ClearClusterAsDeletingChannel = { );
id: "clear-cluster-as-deleting",
};

View File

@ -3,10 +3,10 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { ClusterId } from "../../../../common/cluster-types"; import type { ClusterId } from "../../../../common/cluster-types";
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token"; import { getRequestChannel, RequestChannel } from "@k8slens/messaging";
export type DeleteClusterChannel = RequestChannel<ClusterId, void>; export type DeleteClusterChannel = RequestChannel<ClusterId, void>;
export const deleteClusterChannel: DeleteClusterChannel = { export const deleteClusterChannel = getRequestChannel<ClusterId, void>(
id: "delete-cluster", "delete-cluster"
}; );

View File

@ -3,10 +3,8 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { ClusterId } from "../../../../common/cluster-types"; import type { ClusterId } from "../../../../common/cluster-types";
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token"; import { getRequestChannel } from "@k8slens/messaging";
export type SetClusterAsDeletingChannel = RequestChannel<ClusterId, void>; export const setClusterAsDeletingChannel = getRequestChannel<ClusterId, void>(
"set-cluster-as-deleting"
export const setClusterAsDeletingChannel: SetClusterAsDeletingChannel = { );
id: "set-cluster-as-deleting",
};

View File

@ -3,12 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import clustersThatAreBeingDeletedInjectable from "../../../../main/cluster/are-being-deleted.injectable"; import clustersThatAreBeingDeletedInjectable from "../../../../main/cluster/are-being-deleted.injectable";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { clearClusterAsDeletingChannel } from "../common/clear-as-deleting-channel"; import { clearClusterAsDeletingChannel } from "../common/clear-as-deleting-channel";
const clearClusterAsDeletingChannelListenerInjectable = getRequestChannelListenerInjectable({ const clearClusterAsDeletingChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'clear-cluster-as-deleting-channel-listener',
channel: clearClusterAsDeletingChannel, channel: clearClusterAsDeletingChannel,
handler: (di) => { getHandler: (di) => {
const clustersThatAreBeingDeleted = di.inject(clustersThatAreBeingDeletedInjectable); const clustersThatAreBeingDeleted = di.inject(clustersThatAreBeingDeletedInjectable);
return (clusterId) => { return (clusterId) => {

View File

@ -10,12 +10,13 @@ import removePathInjectable from "../../../../common/fs/remove.injectable";
import joinPathsInjectable from "../../../../common/path/join-paths.injectable"; import joinPathsInjectable from "../../../../common/path/join-paths.injectable";
import clusterConnectionInjectable from "../../../../main/cluster/cluster-connection.injectable"; import clusterConnectionInjectable from "../../../../main/cluster/cluster-connection.injectable";
import { noop } from "@k8slens/utilities"; import { noop } from "@k8slens/utilities";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { deleteClusterChannel } from "../common/delete-channel"; import { deleteClusterChannel } from "../common/delete-channel";
const deleteClusterChannelListenerInjectable = getRequestChannelListenerInjectable({ const deleteClusterChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'delete-cluster-channel-listener',
channel: deleteClusterChannel, channel: deleteClusterChannel,
handler: (di) => { getHandler: (di) => {
const emitAppEvent = di.inject(emitAppEventInjectable); const emitAppEvent = di.inject(emitAppEventInjectable);
const clusterStore = di.inject(clusterStoreInjectable); const clusterStore = di.inject(clusterStoreInjectable);
const clusterFrames = di.inject(clusterFramesInjectable); const clusterFrames = di.inject(clusterFramesInjectable);

View File

@ -3,12 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import clustersThatAreBeingDeletedInjectable from "../../../../main/cluster/are-being-deleted.injectable"; import clustersThatAreBeingDeletedInjectable from "../../../../main/cluster/are-being-deleted.injectable";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { setClusterAsDeletingChannel } from "../common/set-as-deleting-channel"; import { setClusterAsDeletingChannel } from "../common/set-as-deleting-channel";
const setClusterAsDeletingChannelHandlerInjectable = getRequestChannelListenerInjectable({ const setClusterAsDeletingChannelHandlerInjectable = getRequestChannelListenerInjectable({
id: 'set-cluster-as-deleting-channel-handler',
channel: setClusterAsDeletingChannel, channel: setClusterAsDeletingChannel,
handler: (di) => { getHandler: (di) => {
const clustersThatAreBeingDeleted = di.inject(clustersThatAreBeingDeletedInjectable); const clustersThatAreBeingDeleted = di.inject(clustersThatAreBeingDeletedInjectable);
return (clusterId) => { return (clusterId) => {

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { ClusterId } from "../../../../common/cluster-types"; import type { ClusterId } from "../../../../common/cluster-types";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { clearClusterAsDeletingChannel } from "../common/clear-as-deleting-channel"; import { clearClusterAsDeletingChannel } from "../common/clear-as-deleting-channel";
export type RequestClearClusterAsDeleting = (clusterId: ClusterId) => Promise<void>; export type RequestClearClusterAsDeleting = (clusterId: ClusterId) => Promise<void>;
@ -12,7 +12,7 @@ export type RequestClearClusterAsDeleting = (clusterId: ClusterId) => Promise<vo
const requestClearClusterAsDeletingInjectable = getInjectable({ const requestClearClusterAsDeletingInjectable = getInjectable({
id: "request-clear-cluster-as-deleting", id: "request-clear-cluster-as-deleting",
instantiate: (di): RequestClearClusterAsDeleting => { instantiate: (di): RequestClearClusterAsDeleting => {
const requestChannel = di.inject(requestFromChannelInjectable); const requestChannel = di.inject(requestFromChannelInjectionToken);
return (clusterId) => requestChannel(clearClusterAsDeletingChannel, clusterId); return (clusterId) => requestChannel(clearClusterAsDeletingChannel, clusterId);
}, },

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { ClusterId } from "../../../../common/cluster-types"; import type { ClusterId } from "../../../../common/cluster-types";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { deleteClusterChannel } from "../common/delete-channel"; import { deleteClusterChannel } from "../common/delete-channel";
export type RequestDeleteCluster = (clusterId: ClusterId) => Promise<void>; export type RequestDeleteCluster = (clusterId: ClusterId) => Promise<void>;
@ -12,7 +12,7 @@ export type RequestDeleteCluster = (clusterId: ClusterId) => Promise<void>;
const requestDeleteClusterInjectable = getInjectable({ const requestDeleteClusterInjectable = getInjectable({
id: "request-delete-cluster", id: "request-delete-cluster",
instantiate: (di): RequestDeleteCluster => { instantiate: (di): RequestDeleteCluster => {
const requestChannel = di.inject(requestFromChannelInjectable); const requestChannel = di.inject(requestFromChannelInjectionToken);
return (clusterId) => requestChannel(deleteClusterChannel, clusterId); return (clusterId) => requestChannel(deleteClusterChannel, clusterId);
}, },

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { ClusterId } from "../../../../common/cluster-types"; import type { ClusterId } from "../../../../common/cluster-types";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { setClusterAsDeletingChannel } from "../common/set-as-deleting-channel"; import { setClusterAsDeletingChannel } from "../common/set-as-deleting-channel";
export type RequestSetClusterAsDeleting = (clusterId: ClusterId) => Promise<void>; export type RequestSetClusterAsDeleting = (clusterId: ClusterId) => Promise<void>;
@ -12,7 +12,7 @@ export type RequestSetClusterAsDeleting = (clusterId: ClusterId) => Promise<void
const requestSetClusterAsDeletingInjectable = getInjectable({ const requestSetClusterAsDeletingInjectable = getInjectable({
id: "request-set-cluster-as-deleting", id: "request-set-cluster-as-deleting",
instantiate: (di): RequestSetClusterAsDeleting => { instantiate: (di): RequestSetClusterAsDeleting => {
const requestChannel = di.inject(requestFromChannelInjectable); const requestChannel = di.inject(requestFromChannelInjectionToken);
return (clusterId) => requestChannel(setClusterAsDeletingChannel, clusterId); return (clusterId) => requestChannel(setClusterAsDeletingChannel, clusterId);
}, },

View File

@ -4,8 +4,8 @@
*/ */
import type { ClusterId, ClusterState } from "../../../../common/cluster-types"; import type { ClusterId, ClusterState } from "../../../../common/cluster-types";
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token"; import type { RequestChannel } from "@k8slens/messaging";
export interface ClusterStateSync { export interface ClusterStateSync {
clusterId: ClusterId; clusterId: ClusterId;

View File

@ -3,18 +3,15 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { MessageChannelHandler } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import { sendMessageToChannelInjectionToken } from "../../../../common/utils/channel/message-to-channel-injection-token"; import { ClusterStateSync, clusterStateSyncChannel } from "../common/channels";
import { clusterStateSyncChannel } from "../common/channels";
export type EmitClusterStateUpdate = MessageChannelHandler<typeof clusterStateSyncChannel>;
const emitClusterStateUpdateInjectable = getInjectable({ const emitClusterStateUpdateInjectable = getInjectable({
id: "emit-cluster-state-update", id: "emit-cluster-state-update",
instantiate: (di): EmitClusterStateUpdate => { instantiate: (di) => {
const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken); const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken);
return (message) => sendMessageToChannel(clusterStateSyncChannel, message); return (message: ClusterStateSync) => sendMessageToChannel(clusterStateSyncChannel, message);
}, },
}); });

View File

@ -3,12 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable"; import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { initialClusterStatesChannel } from "../common/channels"; import { initialClusterStatesChannel } from "../common/channels";
const handleInitialClusterStateSyncInjectable = getRequestChannelListenerInjectable({ const handleInitialClusterStateSyncInjectable = getRequestChannelListenerInjectable({
id: 'handle-initial-cluster-state-sync',
channel: initialClusterStatesChannel, channel: initialClusterStatesChannel,
handler: (di) => { getHandler: (di) => {
const clusterStore = di.inject(clusterStoreInjectable); const clusterStore = di.inject(clusterStoreInjectable);
return () => clusterStore.clustersList.map(cluster => ({ return () => clusterStore.clustersList.map(cluster => ({

View File

@ -3,13 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable"; import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable";
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import { clusterStateSyncChannel } from "../common/channels"; import { clusterStateSyncChannel } from "../common/channels";
const clusterStateListenerInjectable = getMessageChannelListenerInjectable({ const clusterStateListenerInjectable = getMessageChannelListenerInjectable({
channel: clusterStateSyncChannel, channel: clusterStateSyncChannel,
id: "main", id: "main",
handler: (di) => { getHandler: (di) => {
const getClusterById = di.inject(getClusterByIdInjectable); const getClusterById = di.inject(getClusterByIdInjectable);
return ({ clusterId, state }) => getClusterById(clusterId)?.setState(state); return ({ clusterId, state }) => getClusterById(clusterId)?.setState(state);

View File

@ -3,8 +3,8 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { RequestChannelHandler } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import type { RequestChannelHandler } from "@k8slens/messaging";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { initialClusterStatesChannel } from "../common/channels"; import { initialClusterStatesChannel } from "../common/channels";
export type RequestInitialClusterStates = RequestChannelHandler<typeof initialClusterStatesChannel>; export type RequestInitialClusterStates = RequestChannelHandler<typeof initialClusterStatesChannel>;
@ -12,7 +12,7 @@ export type RequestInitialClusterStates = RequestChannelHandler<typeof initialCl
const requestInitialClusterStatesInjectable = getInjectable({ const requestInitialClusterStatesInjectable = getInjectable({
id: "request-initial-cluster-states", id: "request-initial-cluster-states",
instantiate: (di): RequestInitialClusterStates => { instantiate: (di): RequestInitialClusterStates => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return () => requestFromChannel(initialClusterStatesChannel); return () => requestFromChannel(initialClusterStatesChannel);
}, },

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export interface NavigateForExtensionArgs { export interface NavigateForExtensionArgs {
extId: string; extId: string;

View File

@ -2,7 +2,7 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable"; import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable";
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension";
import { navigateForExtensionChannel } from "../common/channel"; import { navigateForExtensionChannel } from "../common/channel";
@ -10,7 +10,7 @@ import { navigateForExtensionChannel } from "../common/channel";
const navigateForExtensionListenerInjectable = getMessageChannelListenerInjectable({ const navigateForExtensionListenerInjectable = getMessageChannelListenerInjectable({
channel: navigateForExtensionChannel, channel: navigateForExtensionChannel,
id: "main", id: "main",
handler: (di) => { getHandler: (di) => {
const extensionLoader = di.inject(extensionLoaderInjectable); const extensionLoader = di.inject(extensionLoaderInjectable);
return ({ extId, pageId, params }) => { return ({ extId, pageId, params }) => {

View File

@ -5,7 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { asyncComputed } from "@ogre-tools/injectable-react"; import { asyncComputed } from "@ogre-tools/injectable-react";
import { getActiveHelmRepositoriesChannel } from "../../../../../common/helm/get-active-helm-repositories-channel"; import { getActiveHelmRepositoriesChannel } from "../../../../../common/helm/get-active-helm-repositories-channel";
import { requestFromChannelInjectionToken } from "../../../../../common/utils/channel/request-from-channel-injection-token"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import showErrorNotificationInjectable from "../../../../../renderer/components/notifications/show-error-notification.injectable"; import showErrorNotificationInjectable from "../../../../../renderer/components/notifications/show-error-notification.injectable";
import helmRepositoriesErrorStateInjectable from "./helm-repositories-error-state.injectable"; import helmRepositoriesErrorStateInjectable from "./helm-repositories-error-state.injectable";
import { runInAction } from "mobx"; import { runInAction } from "mobx";

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { HelmRepo } from "../../../../../../../common/helm/helm-repo"; import type { HelmRepo } from "../../../../../../../common/helm/helm-repo";
import { requestFromChannelInjectionToken } from "../../../../../../../common/utils/channel/request-from-channel-injection-token"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import activeHelmRepositoriesInjectable from "../../active-helm-repositories.injectable"; import activeHelmRepositoriesInjectable from "../../active-helm-repositories.injectable";
import showErrorNotificationInjectable from "../../../../../../../renderer/components/notifications/show-error-notification.injectable"; import showErrorNotificationInjectable from "../../../../../../../renderer/components/notifications/show-error-notification.injectable";
import showSuccessNotificationInjectable from "../../../../../../../renderer/components/notifications/show-success-notification.injectable"; import showSuccessNotificationInjectable from "../../../../../../../renderer/components/notifications/show-success-notification.injectable";

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { HelmRepo } from "../../../../../common/helm/helm-repo"; import type { HelmRepo } from "../../../../../common/helm/helm-repo";
import { requestFromChannelInjectionToken } from "../../../../../common/utils/channel/request-from-channel-injection-token"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import activeHelmRepositoriesInjectable from "./active-helm-repositories.injectable"; import activeHelmRepositoriesInjectable from "./active-helm-repositories.injectable";
import { removeHelmRepositoryChannel } from "../../../../../common/helm/remove-helm-repository-channel"; import { removeHelmRepositoryChannel } from "../../../../../common/helm/remove-helm-repository-channel";

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export type ReloadPageChannel = MessageChannel<void>; export type ReloadPageChannel = MessageChannel<void>;

View File

@ -8,6 +8,7 @@ import { reloadPageChannel } from "../common/channel";
import reloadPageChannelListenerInjectable from "./register-listener.injectable"; import reloadPageChannelListenerInjectable from "./register-listener.injectable";
export default getGlobalOverride(reloadPageChannelListenerInjectable, () => ({ export default getGlobalOverride(reloadPageChannelListenerInjectable, () => ({
id: 'reload-page-channel-listener',
channel: reloadPageChannel, channel: reloadPageChannel,
handler: () => {}, handler: () => {},
})); }));

View File

@ -2,13 +2,13 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import { reloadPageChannel } from "../common/channel"; import { reloadPageChannel } from "../common/channel";
const reloadPageChannelListenerInjectable = getMessageChannelListenerInjectable({ const reloadPageChannelListenerInjectable = getMessageChannelListenerInjectable({
id: "handler", id: "handler",
channel: reloadPageChannel, channel: reloadPageChannel,
handler: () => () => location.reload(), getHandler: () => () => location.reload(),
causesSideEffects: true, causesSideEffects: true,
}); });

View File

@ -4,7 +4,7 @@
*/ */
import type { OpenDialogOptions } from "electron"; import type { OpenDialogOptions } from "electron";
import type { RequestChannel } from "../../../common/utils/channel/request-channel-listener-injection-token"; import type { RequestChannel } from "@k8slens/messaging";
export type PathPickingResponse = { export type PathPickingResponse = {
canceled: true; canceled: true;

View File

@ -4,12 +4,13 @@
*/ */
import askUserForFilePathsInjectable from "../../../main/ipc/ask-user-for-file-paths.injectable"; import askUserForFilePathsInjectable from "../../../main/ipc/ask-user-for-file-paths.injectable";
import { getRequestChannelListenerInjectable } from "../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { openPathPickingDialogChannel } from "../common/channel"; import { openPathPickingDialogChannel } from "../common/channel";
const openPathPickingDialogListener = getRequestChannelListenerInjectable({ const openPathPickingDialogListener = getRequestChannelListenerInjectable({
id: 'open-path-picking-dialog',
channel: openPathPickingDialogChannel, channel: openPathPickingDialogChannel,
handler: (di) => di.inject(askUserForFilePathsInjectable), getHandler: (di) => di.inject(askUserForFilePathsInjectable),
}); });
export default openPathPickingDialogListener; export default openPathPickingDialogListener;

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { PathPickOpts } from "../../../renderer/components/path-picker"; import type { PathPickOpts } from "../../../renderer/components/path-picker";
import requestFromChannelInjectable from "../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { openPathPickingDialogChannel } from "../common/channel"; import { openPathPickingDialogChannel } from "../common/channel";
export type OpenPathPickingDialog = (options: PathPickOpts) => Promise<void>; export type OpenPathPickingDialog = (options: PathPickOpts) => Promise<void>;
@ -12,7 +12,7 @@ export type OpenPathPickingDialog = (options: PathPickOpts) => Promise<void>;
const openPathPickingDialogInjectable = getInjectable({ const openPathPickingDialogInjectable = getInjectable({
id: "open-path-picking-dialog", id: "open-path-picking-dialog",
instantiate: (di): OpenPathPickingDialog => { instantiate: (di): OpenPathPickingDialog => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return async (options) => { return async (options) => {
const { onPick, onCancel, ...dialogOptions } = options; const { onPick, onCancel, ...dialogOptions } = options;

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { MessageChannel } from "../../../common/utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
export const shellSyncFailedChannel: MessageChannel<string> = { export const shellSyncFailedChannel: MessageChannel<string> = {
id: "shell-sync-failed-channel", id: "shell-sync-failed-channel",

View File

@ -3,16 +3,15 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { MessageChannelSender } from "../../../common/utils/channel/message-to-channel-injection-token"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import { sendMessageToChannelInjectionToken } from "../../../common/utils/channel/message-to-channel-injection-token";
import { shellSyncFailedChannel } from "../common/failure-channel"; import { shellSyncFailedChannel } from "../common/failure-channel";
const emitShellSyncFailedInjectable = getInjectable({ const emitShellSyncFailedInjectable = getInjectable({
id: "emit-shell-sync-failed", id: "emit-shell-sync-failed",
instantiate: (di): MessageChannelSender<typeof shellSyncFailedChannel> => { instantiate: (di) => {
const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken); const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken);
return (error) => sendMessageToChannel(shellSyncFailedChannel, error); return (error: string) => sendMessageToChannel(shellSyncFailedChannel, error);
}, },
}); });

View File

@ -2,14 +2,14 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getMessageChannelListenerInjectable } from "../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import showErrorNotificationInjectable from "../../../renderer/components/notifications/show-error-notification.injectable"; import showErrorNotificationInjectable from "../../../renderer/components/notifications/show-error-notification.injectable";
import { shellSyncFailedChannel } from "../common/failure-channel"; import { shellSyncFailedChannel } from "../common/failure-channel";
const shellSyncFailureListenerInjectable = getMessageChannelListenerInjectable({ const shellSyncFailureListenerInjectable = getMessageChannelListenerInjectable({
id: "notification", id: "notification",
channel: shellSyncFailedChannel, channel: shellSyncFailedChannel,
handler: (di) => { getHandler: (di) => {
const showErrorNotification = di.inject(showErrorNotificationInjectable); const showErrorNotification = di.inject(showErrorNotificationInjectable);
return (errorMessage) => showErrorNotification(`Failed to sync shell environment: ${errorMessage}`); return (errorMessage) => showErrorNotification(`Failed to sync shell environment: ${errorMessage}`);

View File

@ -3,8 +3,8 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import type { MessageChannel } from "@k8slens/messaging";
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token"; import type { RequestChannel } from "@k8slens/messaging";
export type SystemThemeType = "dark" | "light"; export type SystemThemeType = "dark" | "light";

View File

@ -3,18 +3,15 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { MessageChannelHandler } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import { sendMessageToChannelInjectionToken } from "../../../../common/utils/channel/message-to-channel-injection-token"; import { SystemThemeType, systemThemeTypeUpdateChannel } from "../common/channels";
import { systemThemeTypeUpdateChannel } from "../common/channels";
export type EmitSystemThemeTypeUpdate = MessageChannelHandler<typeof systemThemeTypeUpdateChannel>;
const emitSystemThemeTypeUpdateInjectable = getInjectable({ const emitSystemThemeTypeUpdateInjectable = getInjectable({
id: "emit-system-theme-type-update", id: "emit-system-theme-type-update",
instantiate: (di): EmitSystemThemeTypeUpdate => { instantiate: (di) => {
const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken); const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken);
return (type) => sendMessageToChannel(systemThemeTypeUpdateChannel, type); return (type: SystemThemeType) => sendMessageToChannel(systemThemeTypeUpdateChannel, type);
}, },
}); });

View File

@ -4,12 +4,13 @@
*/ */
import operatingSystemThemeInjectable from "../../../../main/theme/operating-system-theme.injectable"; import operatingSystemThemeInjectable from "../../../../main/theme/operating-system-theme.injectable";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import { initialSystemThemeTypeChannel } from "../common/channels"; import { initialSystemThemeTypeChannel } from "../common/channels";
const initialSystemThemeTypeHandler = getRequestChannelListenerInjectable({ const initialSystemThemeTypeHandler = getRequestChannelListenerInjectable({
id: 'initial-system-theme-type-listener',
channel: initialSystemThemeTypeChannel, channel: initialSystemThemeTypeChannel,
handler: (di) => { getHandler: (di) => {
const operatingSystemTheme = di.inject(operatingSystemThemeInjectable); const operatingSystemTheme = di.inject(operatingSystemThemeInjectable);
return () => operatingSystemTheme.get(); return () => operatingSystemTheme.get();

View File

@ -3,8 +3,8 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { RequestChannelHandler } from "../../../../main/utils/channel/channel-listeners/listener-tokens"; import type { RequestChannelHandler } from "@k8slens/messaging";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
import { initialSystemThemeTypeChannel } from "../common/channels"; import { initialSystemThemeTypeChannel } from "../common/channels";
export type RequestInitialSystemThemeType = RequestChannelHandler<typeof initialSystemThemeTypeChannel>; export type RequestInitialSystemThemeType = RequestChannelHandler<typeof initialSystemThemeTypeChannel>;
@ -12,7 +12,7 @@ export type RequestInitialSystemThemeType = RequestChannelHandler<typeof initial
const requestInitialSystemThemeTypeInjectable = getInjectable({ const requestInitialSystemThemeTypeInjectable = getInjectable({
id: "request-initial-system-theme-type", id: "request-initial-system-theme-type",
instantiate: (di): RequestInitialSystemThemeType => { instantiate: (di): RequestInitialSystemThemeType => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return () => requestFromChannel(initialSystemThemeTypeChannel); return () => requestFromChannel(initialSystemThemeTypeChannel);
}, },

View File

@ -2,14 +2,14 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import systemThemeConfigurationInjectable from "../../../../renderer/themes/system-theme.injectable"; import systemThemeConfigurationInjectable from "../../../../renderer/themes/system-theme.injectable";
import { systemThemeTypeUpdateChannel } from "../common/channels"; import { systemThemeTypeUpdateChannel } from "../common/channels";
const systemThemeTypeUpdateListenerInjectable = getMessageChannelListenerInjectable({ const systemThemeTypeUpdateListenerInjectable = getMessageChannelListenerInjectable({
channel: systemThemeTypeUpdateChannel, channel: systemThemeTypeUpdateChannel,
id: "main", id: "main",
handler: (di) => { getHandler: (di) => {
const systemThemeConfiguration = di.inject(systemThemeConfigurationInjectable); const systemThemeConfiguration = di.inject(systemThemeConfigurationInjectable);
return (type) => systemThemeConfiguration.set(type); return (type) => systemThemeConfiguration.set(type);

View File

@ -4,11 +4,12 @@
*/ */
import { appPathsChannel } from "../../common/app-paths/app-paths-channel"; import { appPathsChannel } from "../../common/app-paths/app-paths-channel";
import appPathsInjectable from "../../common/app-paths/app-paths.injectable"; import appPathsInjectable from "../../common/app-paths/app-paths.injectable";
import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
const appPathsRequestChannelListenerInjectable = getRequestChannelListenerInjectable({ const appPathsRequestChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'app-paths-request-channel-listener',
channel: appPathsChannel, channel: appPathsChannel,
handler: (di) => { getHandler: (di) => {
const appPaths = di.inject(appPathsInjectable); const appPaths = di.inject(appPathsInjectable);
return () => appPaths; return () => appPaths;

View File

@ -3,12 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { buildVersionChannel } from "../../common/vars/build-semantic-version.injectable"; import { buildVersionChannel } from "../../common/vars/build-semantic-version.injectable";
import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import buildVersionInjectable from "../vars/build-version/build-version.injectable"; import buildVersionInjectable from "../vars/build-version/build-version.injectable";
const buildVersionChannelListenerInjectable = getRequestChannelListenerInjectable({ const buildVersionChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'build-version-channel-listener',
channel: buildVersionChannel, channel: buildVersionChannel,
handler: (di) => { getHandler: (di) => {
const buildVersion = di.inject(buildVersionInjectable); const buildVersion = di.inject(buildVersionInjectable);
return () => buildVersion.get(); return () => buildVersion.get();

View File

@ -3,13 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { clusterVisibilityChannel } from "../../common/cluster/visibility-channel"; import { clusterVisibilityChannel } from "../../common/cluster/visibility-channel";
import { getMessageChannelListenerInjectable } from "../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import visibleClusterInjectable from "./visible-cluster.injectable"; import visibleClusterInjectable from "./visible-cluster.injectable";
const clusterVisibilityHandlerInjectable = getMessageChannelListenerInjectable({ const clusterVisibilityHandlerInjectable = getMessageChannelListenerInjectable({
channel: clusterVisibilityChannel, channel: clusterVisibilityChannel,
id: "base", id: "base",
handler: (di) => { getHandler: (di) => {
const visibleCluster = di.inject(visibleClusterInjectable); const visibleCluster = di.inject(visibleClusterInjectable);
return (clusterId) => visibleCluster.set(clusterId); return (clusterId) => visibleCluster.set(clusterId);

View File

@ -30,6 +30,8 @@ import {
setLegacyGlobalDiForExtensionApi, setLegacyGlobalDiForExtensionApi,
} from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
import { registerFeature } from "@k8slens/feature-core";
import { messagingFeature, testUtils as messagingTestUtils } from "@k8slens/messaging";
export function getDiForUnitTesting() { export function getDiForUnitTesting() {
const di = createContainer("main"); const di = createContainer("main");
@ -37,6 +39,11 @@ export function getDiForUnitTesting() {
registerMobX(di); registerMobX(di);
setLegacyGlobalDiForExtensionApi(di, "main"); setLegacyGlobalDiForExtensionApi(di, "main");
runInAction(() => {
registerFeature(di, messagingFeature, messagingTestUtils.messagingFeatureForUnitTesting);
});
di.preventSideEffects(); di.preventSideEffects();
runInAction(() => { runInAction(() => {

View File

@ -3,12 +3,14 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { addHelmRepositoryChannel } from "../../../../common/helm/add-helm-repository-channel"; import { addHelmRepositoryChannel } from "../../../../common/helm/add-helm-repository-channel";
import { getRequestChannelListenerInjectable } from "../../../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import addHelmRepositoryInjectable from "./add-helm-repository.injectable"; import addHelmRepositoryInjectable from "./add-helm-repository.injectable";
const addHelmRepositoryChannelListenerInjectable = getRequestChannelListenerInjectable({ const addHelmRepositoryChannelListenerInjectable =
channel: addHelmRepositoryChannel, getRequestChannelListenerInjectable({
handler: (di) => di.inject(addHelmRepositoryInjectable), id: "add-helm-repository-channel-listener",
}); channel: addHelmRepositoryChannel,
getHandler: (di) => di.inject(addHelmRepositoryInjectable),
});
export default addHelmRepositoryChannelListenerInjectable; export default addHelmRepositoryChannelListenerInjectable;

View File

@ -5,17 +5,16 @@
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import execHelmInjectable from "../../exec-helm/exec-helm.injectable"; import execHelmInjectable from "../../exec-helm/exec-helm.injectable";
import loggerInjectable from "../../../../common/logger.injectable"; import loggerInjectable from "../../../../common/logger.injectable";
import type { AddHelmRepositoryChannel } from "../../../../common/helm/add-helm-repository-channel"; import type { HelmRepo } from "../../../../common/helm/helm-repo";
import type { RequestChannelHandler } from "../../../utils/channel/channel-listeners/listener-tokens";
const addHelmRepositoryInjectable = getInjectable({ const addHelmRepositoryInjectable = getInjectable({
id: "add-helm-repository", id: "add-helm-repository",
instantiate: (di): RequestChannelHandler<AddHelmRepositoryChannel> => { instantiate: (di) => {
const execHelm = di.inject(execHelmInjectable); const execHelm = di.inject(execHelmInjectable);
const logger = di.inject(loggerInjectable); const logger = di.inject(loggerInjectable);
return async (repo) => { return async (repo: HelmRepo) => {
const { const {
name, name,
url, url,
@ -59,12 +58,12 @@ const addHelmRepositoryInjectable = getInjectable({
if (result.callWasSuccessful) { if (result.callWasSuccessful) {
return { return {
callWasSuccessful: true, callWasSuccessful: true as const,
}; };
} }
return { return {
callWasSuccessful: false, callWasSuccessful: false as const,
error: result.error.stderr || result.error.message, error: result.error.stderr || result.error.message,
}; };
}; };

View File

@ -3,12 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getActiveHelmRepositoriesChannel } from "../../../../common/helm/get-active-helm-repositories-channel"; import { getActiveHelmRepositoriesChannel } from "../../../../common/helm/get-active-helm-repositories-channel";
import { getRequestChannelListenerInjectable } from "../../../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import getActiveHelmRepositoriesInjectable from "./get-active-helm-repositories.injectable"; import getActiveHelmRepositoriesInjectable from "./get-active-helm-repositories.injectable";
const getActiveHelmRepositoriesChannelListenerInjectable = getRequestChannelListenerInjectable({ const getActiveHelmRepositoriesChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'get-active-helm-repositories-channel-listener',
channel: getActiveHelmRepositoriesChannel, channel: getActiveHelmRepositoriesChannel,
handler: (di) => di.inject(getActiveHelmRepositoriesInjectable), getHandler: (di) => di.inject(getActiveHelmRepositoriesInjectable),
}); });
export default getActiveHelmRepositoriesChannelListenerInjectable; export default getActiveHelmRepositoriesChannelListenerInjectable;

View File

@ -4,11 +4,12 @@
*/ */
import removeHelmRepositoryInjectable from "./remove-helm-repository.injectable"; import removeHelmRepositoryInjectable from "./remove-helm-repository.injectable";
import { removeHelmRepositoryChannel } from "../../../../common/helm/remove-helm-repository-channel"; import { removeHelmRepositoryChannel } from "../../../../common/helm/remove-helm-repository-channel";
import { getRequestChannelListenerInjectable } from "../../../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
const removeHelmRepositoryChannelListenerInjectable = getRequestChannelListenerInjectable({ const removeHelmRepositoryChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'remove-helm-repository-channel-listener',
channel: removeHelmRepositoryChannel, channel: removeHelmRepositoryChannel,
handler: (di) => di.inject(removeHelmRepositoryInjectable), getHandler: (di) => di.inject(removeHelmRepositoryInjectable),
}); });
export default removeHelmRepositoryChannelListenerInjectable; export default removeHelmRepositoryChannelListenerInjectable;

View File

@ -5,7 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import showApplicationWindowInjectable from "../start-main-application/lens-window/show-application-window.injectable"; import showApplicationWindowInjectable from "../start-main-application/lens-window/show-application-window.injectable";
import type { RequestChannelHandler } from "../utils/channel/channel-listeners/listener-tokens"; import type { RequestChannelHandler } from "@k8slens/messaging";
import type { openPathPickingDialogChannel } from "../../features/path-picking-dialog/common/channel"; import type { openPathPickingDialogChannel } from "../../features/path-picking-dialog/common/channel";
import showOpenDialogInjectable from "../electron-app/features/show-open-dialog.injectable"; import showOpenDialogInjectable from "../electron-app/features/show-open-dialog.injectable";

View File

@ -6,11 +6,12 @@ import emitAppEventInjectable from "../../common/app-event-bus/emit-event.inject
import getClusterByIdInjectable from "../../common/cluster-store/get-by-id.injectable"; import getClusterByIdInjectable from "../../common/cluster-store/get-by-id.injectable";
import { kubectlApplyAllChannel } from "../../common/kube-helpers/channels"; import { kubectlApplyAllChannel } from "../../common/kube-helpers/channels";
import resourceApplierInjectable from "../resource-applier/create-resource-applier.injectable"; import resourceApplierInjectable from "../resource-applier/create-resource-applier.injectable";
import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
const kubectlApplyAllChannelHandlerInjectable = getRequestChannelListenerInjectable({ const kubectlApplyAllChannelHandlerInjectable = getRequestChannelListenerInjectable({
id: 'kubectl-apply-all-channel-handler-listener',
channel: kubectlApplyAllChannel, channel: kubectlApplyAllChannel,
handler: (di) => { getHandler: (di) => {
const getClusterById = di.inject(getClusterByIdInjectable); const getClusterById = di.inject(getClusterByIdInjectable);
const emitAppEvent = di.inject(emitAppEventInjectable); const emitAppEvent = di.inject(emitAppEventInjectable);

View File

@ -6,11 +6,12 @@ import emitAppEventInjectable from "../../common/app-event-bus/emit-event.inject
import getClusterByIdInjectable from "../../common/cluster-store/get-by-id.injectable"; import getClusterByIdInjectable from "../../common/cluster-store/get-by-id.injectable";
import { kubectlDeleteAllChannel } from "../../common/kube-helpers/channels"; import { kubectlDeleteAllChannel } from "../../common/kube-helpers/channels";
import resourceApplierInjectable from "../resource-applier/create-resource-applier.injectable"; import resourceApplierInjectable from "../resource-applier/create-resource-applier.injectable";
import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
const kubectlDeleteAllChannelHandlerInjectable = getRequestChannelListenerInjectable({ const kubectlDeleteAllChannelHandlerInjectable = getRequestChannelListenerInjectable({
id: 'kubectl-delete-all-channel-handler-listener',
channel: kubectlDeleteAllChannel, channel: kubectlDeleteAllChannel,
handler: (di) => { getHandler: (di) => {
const emitAppEvent = di.inject(emitAppEventInjectable); const emitAppEvent = di.inject(emitAppEventInjectable);
const getClusterById = di.inject(getClusterByIdInjectable); const getClusterById = di.inject(getClusterByIdInjectable);

View File

@ -3,12 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { lensProxyCertificateChannel } from "../../common/certificate/lens-proxy-certificate-channel"; import { lensProxyCertificateChannel } from "../../common/certificate/lens-proxy-certificate-channel";
import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import lensProxyCertificateInjectable from "../../common/certificate/lens-proxy-certificate.injectable"; import lensProxyCertificateInjectable from "../../common/certificate/lens-proxy-certificate.injectable";
const lensProxyCertificateRequestHandlerInjectable = getRequestChannelListenerInjectable({ const lensProxyCertificateRequestHandlerInjectable = getRequestChannelListenerInjectable({
id: 'lens-proxy-certificate-request-handler-listener',
channel: lensProxyCertificateChannel, channel: lensProxyCertificateChannel,
handler: (di) => { getHandler: (di) => {
const lensProxyCertificate = di.inject(lensProxyCertificateInjectable).get(); const lensProxyCertificate = di.inject(lensProxyCertificateInjectable).get();
return () => ({ return () => ({

View File

@ -3,17 +3,17 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { currentClusterMessageChannel } from "../../../../common/cluster/current-cluster-channel"; import { currentClusterMessageChannel } from "../../../../common/cluster/current-cluster-channel";
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import currentClusterFrameClusterIdStateInjectable from "./current-cluster-frame-cluster-id-state.injectable"; import currentClusterFrameClusterIdStateInjectable from "./current-cluster-frame-cluster-id-state.injectable";
const currentVisibileClusterListenerInjectable = getMessageChannelListenerInjectable({ const currentVisibleClusterListenerInjectable = getMessageChannelListenerInjectable({
id: "current-visibile-cluster", id: "current-visible-cluster",
channel: currentClusterMessageChannel, channel: currentClusterMessageChannel,
handler: (di) => { getHandler: (di) => {
const currentClusterFrameState = di.inject(currentClusterFrameClusterIdStateInjectable); const currentClusterFrameState = di.inject(currentClusterFrameClusterIdStateInjectable);
return clusterId => currentClusterFrameState.set(clusterId); return clusterId => currentClusterFrameState.set(clusterId);
}, },
}); });
export default currentVisibileClusterListenerInjectable; export default currentVisibleClusterListenerInjectable;

View File

@ -2,7 +2,7 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging";
import { rootFrameHasRenderedChannel } from "../../../../common/root-frame/root-frame-rendered-channel"; import { rootFrameHasRenderedChannel } from "../../../../common/root-frame/root-frame-rendered-channel";
import { runManyFor } from "@k8slens/run-many"; import { runManyFor } from "@k8slens/run-many";
import { afterRootFrameIsReadyInjectionToken } from "../../runnable-tokens/phases"; import { afterRootFrameIsReadyInjectionToken } from "../../runnable-tokens/phases";
@ -10,7 +10,7 @@ import { afterRootFrameIsReadyInjectionToken } from "../../runnable-tokens/phase
const rootFrameRenderedChannelListenerInjectable = getMessageChannelListenerInjectable({ const rootFrameRenderedChannelListenerInjectable = getMessageChannelListenerInjectable({
id: "action", id: "action",
channel: rootFrameHasRenderedChannel, channel: rootFrameHasRenderedChannel,
handler: (di) => { getHandler: (di) => {
const runMany = runManyFor(di); const runMany = runManyFor(di);
return runMany(afterRootFrameIsReadyInjectionToken); return runMany(afterRootFrameIsReadyInjectionToken);

View File

@ -3,12 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { resolveSystemProxyChannel } from "../../../common/utils/resolve-system-proxy/resolve-system-proxy-channel"; import { resolveSystemProxyChannel } from "../../../common/utils/resolve-system-proxy/resolve-system-proxy-channel";
import { getRequestChannelListenerInjectable } from "../channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
import resolveSystemProxyInjectable from "./resolve-system-proxy.injectable"; import resolveSystemProxyInjectable from "./resolve-system-proxy.injectable";
const resolveSystemProxyChannelResponderInjectable = getRequestChannelListenerInjectable({ const resolveSystemProxyChannelResponderInjectable = getRequestChannelListenerInjectable({
id: 'resolve-system-proxy-channel-responder-listener',
channel: resolveSystemProxyChannel, channel: resolveSystemProxyChannel,
handler: (di) => di.inject(resolveSystemProxyInjectable), getHandler: (di) => di.inject(resolveSystemProxyInjectable),
}); });
export default resolveSystemProxyChannelResponderInjectable; export default resolveSystemProxyChannelResponderInjectable;

View File

@ -4,11 +4,12 @@
*/ */
import { syncBoxInitialValueChannel } from "../../../common/utils/sync-box/channels"; import { syncBoxInitialValueChannel } from "../../../common/utils/sync-box/channels";
import { syncBoxInjectionToken } from "../../../common/utils/sync-box/sync-box-injection-token"; import { syncBoxInjectionToken } from "../../../common/utils/sync-box/sync-box-injection-token";
import { getRequestChannelListenerInjectable } from "../channel/channel-listeners/listener-tokens"; import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
const syncBoxInitialValueChannelListenerInjectable = getRequestChannelListenerInjectable({ const syncBoxInitialValueChannelListenerInjectable = getRequestChannelListenerInjectable({
id: 'sync-box-initial-value-channel-listener',
channel: syncBoxInitialValueChannel, channel: syncBoxInitialValueChannel,
handler: (di) => { getHandler: (di) => {
const syncBoxes = di.injectMany(syncBoxInjectionToken); const syncBoxes = di.injectMany(syncBoxInjectionToken);
return () => syncBoxes.map((box) => ({ return () => syncBoxes.map((box) => ({

View File

@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import appPathsStateInjectable from "../../common/app-paths/app-paths-state.injectable"; import appPathsStateInjectable from "../../common/app-paths/app-paths-state.injectable";
import { beforeFrameStartsFirstInjectionToken } from "../before-frame-starts/tokens"; import { beforeFrameStartsFirstInjectionToken } from "../before-frame-starts/tokens";
import { appPathsChannel } from "../../common/app-paths/app-paths-channel"; import { appPathsChannel } from "../../common/app-paths/app-paths-channel";
import { requestFromChannelInjectionToken } from "../../common/utils/channel/request-from-channel-injection-token"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
const setupAppPathsInjectable = getInjectable({ const setupAppPathsInjectable = getInjectable({
id: "setup-app-paths", id: "setup-app-paths",

View File

@ -5,7 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { reaction } from "mobx"; import { reaction } from "mobx";
import { currentClusterMessageChannel } from "../../../common/cluster/current-cluster-channel"; import { currentClusterMessageChannel } from "../../../common/cluster/current-cluster-channel";
import { sendMessageToChannelInjectionToken } from "../../../common/utils/channel/message-to-channel-injection-token"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import matchedClusterIdInjectable from "../../navigation/matched-cluster-id.injectable"; import matchedClusterIdInjectable from "../../navigation/matched-cluster-id.injectable";
import { beforeMainFrameStartsFirstInjectionToken } from "../tokens"; import { beforeMainFrameStartsFirstInjectionToken } from "../tokens";

View File

@ -4,12 +4,12 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { lensProxyCertificateChannel } from "../../common/certificate/lens-proxy-certificate-channel"; import { lensProxyCertificateChannel } from "../../common/certificate/lens-proxy-certificate-channel";
import requestFromChannelInjectable from "../utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
const requestLensProxyCertificateInjectable = getInjectable({ const requestLensProxyCertificateInjectable = getInjectable({
id: "request-lens-proxy-certificate", id: "request-lens-proxy-certificate",
instantiate: (di) => { instantiate: (di) => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return () => requestFromChannel(lensProxyCertificateChannel); return () => requestFromChannel(lensProxyCertificateChannel);
}, },

View File

@ -26,6 +26,7 @@ export interface ExtensionInfo {
requireConfirmation?: boolean; requireConfirmation?: boolean;
} }
// @ts-ignore
interface NpmPackageVersionDescriptor extends PackageJson { interface NpmPackageVersionDescriptor extends PackageJson {
dist: { dist: {
integrity: string; integrity: string;

View File

@ -10,7 +10,6 @@ import { onceDefined } from "@k8slens/utilities";
import assert from "assert"; import assert from "assert";
import type { Logger } from "../../../common/logger"; import type { Logger } from "../../../common/logger";
import type { GetClusterById } from "../../../common/cluster-store/get-by-id.injectable"; import type { GetClusterById } from "../../../common/cluster-store/get-by-id.injectable";
import type { EmitClusterVisibility } from "./emit-cluster-visibility.injectable";
import { getClusterFrameUrl } from "../../../common/utils"; import { getClusterFrameUrl } from "../../../common/utils";
export interface LensView { export interface LensView {
@ -21,7 +20,7 @@ export interface LensView {
interface Dependencies { interface Dependencies {
readonly logger: Logger; readonly logger: Logger;
getClusterById: GetClusterById; getClusterById: GetClusterById;
emitClusterVisibility: EmitClusterVisibility; emitClusterVisibility: (clusterId: ClusterId | null) => void;
} }
export class ClusterFrameHandler { export class ClusterFrameHandler {

View File

@ -3,18 +3,16 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { MessageChannelHandler } from "../../../common/utils/channel/message-channel-listener-injection-token"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import { sendMessageToChannelInjectionToken } from "../../../common/utils/channel/message-to-channel-injection-token";
import { clusterVisibilityChannel } from "../../../common/cluster/visibility-channel"; import { clusterVisibilityChannel } from "../../../common/cluster/visibility-channel";
import type { ClusterId } from "../../../common/cluster-types";
export type EmitClusterVisibility = MessageChannelHandler<typeof clusterVisibilityChannel>;
const emitClusterVisibilityInjectable = getInjectable({ const emitClusterVisibilityInjectable = getInjectable({
id: "emit-cluster-visibility", id: "emit-cluster-visibility",
instantiate: (di): EmitClusterVisibility => { instantiate: (di) => {
const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken); const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken);
return (id) => sendMessageToChannel(clusterVisibilityChannel, id); return (id: ClusterId | null) => sendMessageToChannel(clusterVisibilityChannel, id);
}, },
}); });

View File

@ -29,7 +29,6 @@ import type { MinimalTrayMenuItem } from "../../../main/tray/electron-tray/elect
import electronTrayInjectable from "../../../main/tray/electron-tray/electron-tray.injectable"; import electronTrayInjectable from "../../../main/tray/electron-tray/electron-tray.injectable";
import { getDiForUnitTesting as getRendererDi } from "../../getDiForUnitTesting"; import { getDiForUnitTesting as getRendererDi } from "../../getDiForUnitTesting";
import { getDiForUnitTesting as getMainDi } from "../../../main/getDiForUnitTesting"; import { getDiForUnitTesting as getMainDi } from "../../../main/getDiForUnitTesting";
import { overrideChannels } from "../../../test-utils/channel-fakes/override-channels";
import assert from "assert"; import assert from "assert";
import { openMenu } from "react-select-event"; import { openMenu } from "react-select-event";
import userEvent from "@testing-library/user-event"; import userEvent from "@testing-library/user-event";
@ -40,7 +39,7 @@ import { navigateToRouteInjectionToken } from "../../../common/front-end-routing
import type { LensMainExtension } from "../../../extensions/lens-main-extension"; import type { LensMainExtension } from "../../../extensions/lens-main-extension";
import type { LensExtension } from "../../../extensions/lens-extension"; import type { LensExtension } from "../../../extensions/lens-extension";
import extensionInjectable from "../../../extensions/extension-loader/extension/extension.injectable"; import extensionInjectable from "../../../extensions/extension-loader/extension/extension.injectable";
import { renderFor } from "./renderFor"; import { renderFor } from "@k8slens/test-utils";
import { RootFrame } from "../../frames/root-frame/root-frame"; import { RootFrame } from "../../frames/root-frame/root-frame";
import { ClusterFrame } from "../../frames/cluster-frame/cluster-frame"; import { ClusterFrame } from "../../frames/cluster-frame/cluster-frame";
import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable"; import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable";
@ -71,6 +70,7 @@ import { registerFeature } from "@k8slens/feature-core";
import { applicationFeatureForElectronMain, testUtils as applicationForElectronTestUtils } from "@k8slens/application-for-electron-main"; import { applicationFeatureForElectronMain, testUtils as applicationForElectronTestUtils } from "@k8slens/application-for-electron-main";
import { applicationFeature, startApplicationInjectionToken } from "@k8slens/application"; import { applicationFeature, startApplicationInjectionToken } from "@k8slens/application";
import { testUsingFakeTime } from "../../../test-utils/use-fake-time"; import { testUsingFakeTime } from "../../../test-utils/use-fake-time";
import { sendMessageToChannelInjectionToken, testUtils as messagingTestUtils } from "@k8slens/messaging";
type MainDiCallback = (container: { mainDi: DiContainer }) => void | Promise<void>; type MainDiCallback = (container: { mainDi: DiContainer }) => void | Promise<void>;
type WindowDiCallback = (container: { windowDi: DiContainer }) => void | Promise<void>; type WindowDiCallback = (container: { windowDi: DiContainer }) => void | Promise<void>;
@ -179,7 +179,9 @@ export const getApplicationBuilder = () => {
testUsingFakeTime(); testUsingFakeTime();
const { overrideForWindow, sendToWindow } = overrideChannels(mainDi); const messageBridgeFake = messagingTestUtils.getMessageBridgeFake();
messageBridgeFake.involve(mainDi);
const beforeApplicationStartCallbacks: MainDiCallback[] = []; const beforeApplicationStartCallbacks: MainDiCallback[] = [];
const afterApplicationStartCallbacks: MainDiCallback[] = []; const afterApplicationStartCallbacks: MainDiCallback[] = [];
@ -229,7 +231,8 @@ export const getApplicationBuilder = () => {
const windowDi = getRendererDi(); const windowDi = getRendererDi();
overrideForWindow(windowDi, windowId); messageBridgeFake.involve(windowDi);
overrideFsWithFakes(windowDi); overrideFsWithFakes(windowDi);
runInAction(() => { runInAction(() => {
@ -284,8 +287,10 @@ export const getApplicationBuilder = () => {
); );
}, },
send: (arg) => { send: ({ channel: channelId, data }) => {
sendToWindow(windowId, arg); const sendMessageToChannel = mainDi.inject(sendMessageToChannelInjectionToken);
sendMessageToChannel({ id: channelId }, data);
}, },
reload: () => { reload: () => {

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { sendMessageToChannelInjectionToken } from "../../../common/utils/channel/message-to-channel-injection-token"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging";
import { rootFrameHasRenderedChannel } from "../../../common/root-frame/root-frame-rendered-channel"; import { rootFrameHasRenderedChannel } from "../../../common/root-frame/root-frame-rendered-channel";
const broadcastThatRootFrameIsRenderedInjectable = getInjectable({ const broadcastThatRootFrameIsRenderedInjectable = getInjectable({

View File

@ -5,7 +5,6 @@
import { noop, chunk } from "lodash/fp"; import { noop, chunk } from "lodash/fp";
import { createContainer, isInjectable } from "@ogre-tools/injectable"; import { createContainer, isInjectable } from "@ogre-tools/injectable";
import requestFromChannelInjectable from "./utils/channel/request-from-channel.injectable";
import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes"; import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes";
import terminalSpawningPoolInjectable from "./components/dock/terminal/terminal-spawning-pool.injectable"; import terminalSpawningPoolInjectable from "./components/dock/terminal/terminal-spawning-pool.injectable";
import hostedClusterIdInjectable from "./cluster-frame-context/hosted-cluster-id.injectable"; import hostedClusterIdInjectable from "./cluster-frame-context/hosted-cluster-id.injectable";
@ -18,6 +17,8 @@ import type { GlobalOverride } from "@k8slens/test-utils";
import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
import { registerInjectableReact } from "@ogre-tools/injectable-react"; import { registerInjectableReact } from "@ogre-tools/injectable-react";
import { registerFeature } from "@k8slens/feature-core";
import { messagingFeature, testUtils as messagingTestUtils } from "@k8slens/messaging";
export const getDiForUnitTesting = () => { export const getDiForUnitTesting = () => {
const environment = "renderer"; const environment = "renderer";
@ -27,6 +28,10 @@ export const getDiForUnitTesting = () => {
registerInjectableReact(di); registerInjectableReact(di);
setLegacyGlobalDiForExtensionApi(di, environment); setLegacyGlobalDiForExtensionApi(di, environment);
runInAction(() => {
registerFeature(di, messagingFeature, messagingTestUtils.messagingFeatureForUnitTesting);
});
di.preventSideEffects(); di.preventSideEffects();
runInAction(() => { runInAction(() => {
@ -63,8 +68,6 @@ export const getDiForUnitTesting = () => {
di.override(requestAnimationFrameInjectable, () => (callback) => callback()); di.override(requestAnimationFrameInjectable, () => (callback) => callback());
di.override(watchHistoryStateInjectable, () => () => () => {}); di.override(watchHistoryStateInjectable, () => () => () => {});
di.override(requestFromChannelInjectable, () => () => Promise.resolve(undefined as never));
getOverrideFsWithFakes()(di); getOverrideFsWithFakes()(di);
return di; return di;

View File

@ -4,12 +4,12 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { kubectlApplyAllChannel, kubectlApplyAllInjectionToken } from "../../common/kube-helpers/channels"; import { kubectlApplyAllChannel, kubectlApplyAllInjectionToken } from "../../common/kube-helpers/channels";
import requestFromChannelInjectable from "../utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
const kubectlApplyAllInjectable = getInjectable({ const kubectlApplyAllInjectable = getInjectable({
id: "kubectl-apply-all", id: "kubectl-apply-all",
instantiate: (di) => { instantiate: (di) => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return (req) => requestFromChannel(kubectlApplyAllChannel, req); return (req) => requestFromChannel(kubectlApplyAllChannel, req);
}, },

View File

@ -4,12 +4,12 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { kubectlDeleteAllChannel, kubectlDeleteAllInjectionToken } from "../../common/kube-helpers/channels"; import { kubectlDeleteAllChannel, kubectlDeleteAllInjectionToken } from "../../common/kube-helpers/channels";
import requestFromChannelInjectable from "../utils/channel/request-from-channel.injectable"; import { requestFromChannelInjectionToken } from "@k8slens/messaging";
const kubectlDeleteAllInjectable = getInjectable({ const kubectlDeleteAllInjectable = getInjectable({
id: "kubectl-delete-all", id: "kubectl-delete-all",
instantiate: (di) => { instantiate: (di) => {
const requestFromChannel = di.inject(requestFromChannelInjectable); const requestFromChannel = di.inject(requestFromChannelInjectionToken);
return (req) => requestFromChannel(kubectlDeleteAllChannel, req); return (req) => requestFromChannel(kubectlDeleteAllChannel, req);
}, },

View File

@ -2,25 +2,25 @@
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { InjectionToken } from "@ogre-tools/injectable";
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import currentlyInClusterFrameInjectable from "../routes/currently-in-cluster-frame.injectable"; import currentlyInClusterFrameInjectable from "../routes/currently-in-cluster-frame.injectable";
import { appNavigationChannel } from "../../common/front-end-routing/app-navigation-channel"; import { appNavigationChannel } from "../../common/front-end-routing/app-navigation-channel";
import { clusterFrameNavigationChannel } from "../../common/front-end-routing/cluster-frame-navigation-channel"; import { clusterFrameNavigationChannel } from "../../common/front-end-routing/cluster-frame-navigation-channel";
import focusWindowInjectable from "./focus-window.injectable"; import focusWindowInjectable from "./focus-window.injectable";
import { navigateToUrlInjectionToken } from "../../common/front-end-routing/navigate-to-url-injection-token"; import { navigateToUrlInjectionToken } from "../../common/front-end-routing/navigate-to-url-injection-token";
import type { MessageChannel, MessageChannelListener } from "../../common/utils/channel/message-channel-listener-injection-token"; import type { MessageChannel, MessageChannelListener } from "@k8slens/messaging";
import { messageChannelListenerInjectionToken } from "../../common/utils/channel/message-channel-listener-injection-token"; import { messageChannelListenerInjectionToken } from "@k8slens/messaging";
const navigationChannelListenerInjectable = getInjectable({ const navigationChannelListenerInjectable = getInjectable({
id: "navigation-channel-listener", id: "navigation-channel-listener",
instantiate: (di) => { instantiate: (di): MessageChannelListener<MessageChannel<string>> => {
const currentlyInClusterFrame = di.inject(currentlyInClusterFrameInjectable); const currentlyInClusterFrame = di.inject(currentlyInClusterFrameInjectable);
const focusWindow = di.inject(focusWindowInjectable); const focusWindow = di.inject(focusWindowInjectable);
const navigateToUrl = di.inject(navigateToUrlInjectionToken); const navigateToUrl = di.inject(navigateToUrlInjectionToken);
return { return {
id: 'navigation-channel-listener',
channel: currentlyInClusterFrame channel: currentlyInClusterFrame
? clusterFrameNavigationChannel ? clusterFrameNavigationChannel
: appNavigationChannel, : appNavigationChannel,
@ -34,7 +34,8 @@ const navigationChannelListenerInjectable = getInjectable({
}, },
}; };
}, },
injectionToken: messageChannelListenerInjectionToken as InjectionToken<MessageChannelListener<MessageChannel<string>>, void>,
injectionToken: messageChannelListenerInjectionToken
}); });
export default navigationChannelListenerInjectable; export default navigationChannelListenerInjectable;

Some files were not shown because too many files have changed in this diff Show More