mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
chore: Switch buildVersion to use new Initializable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
1 parent
72a01cdc17
commit
1b96a94c14
26 files changed
+105
-152
No files matched your search
@@ -1,19 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { buildVersionChannel } from "../../common/vars/build-semantic-version.injectable";
|
||||
import { getRequestChannelListenerInjectable } from "@k8slens/messaging";
|
||||
import buildVersionInjectable from "../vars/build-version/build-version.injectable";
|
||||
|
||||
const buildVersionChannelListenerInjectable = getRequestChannelListenerInjectable({
|
||||
id: "build-version-channel-listener",
|
||||
channel: buildVersionChannel,
|
||||
getHandler: (di) => {
|
||||
const buildVersion = di.inject(buildVersionInjectable);
|
||||
|
||||
return () => buildVersion.get();
|
||||
},
|
||||
});
|
||||
|
||||
export default buildVersionChannelListenerInjectable;
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import electronAppInjectable from "../../electron-app/electron-app.injectable";
|
||||
import electronAppInjectable from "../electron-app.injectable";
|
||||
|
||||
const getBuildVersionInjectable = getInjectable({
|
||||
id: "get-build-version",
|
||||
@@ -6,18 +6,20 @@ import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import loggerInjectable from "../../common/logger.injectable";
|
||||
import appNameInjectable from "../../common/vars/app-name.injectable";
|
||||
import buildVersionInjectable from "../vars/build-version/build-version.injectable";
|
||||
import { buildVersionInitializable } from "../../features/vars/build-version/common/token";
|
||||
import { buildVersionInitializationInjectable } from "../../features/vars/build-version/main/init.injectable";
|
||||
|
||||
const logVersionOnStartInjectable = getInjectable({
|
||||
id: "log-version-on-start",
|
||||
instantiate: (di) => ({
|
||||
run: () => {
|
||||
const logger = di.inject(loggerInjectable);
|
||||
const buildVersion = di.inject(buildVersionInjectable).get();
|
||||
const buildVersion = di.inject(buildVersionInitializable.stateToken);
|
||||
const appName = di.inject(appNameInjectable);
|
||||
|
||||
logger.info(`Starting v${buildVersion} of ${appName}...`);
|
||||
},
|
||||
runAfter: buildVersionInitializationInjectable,
|
||||
}),
|
||||
injectionToken: beforeApplicationIsLoadingInjectionToken,
|
||||
});
|
||||
|
||||
@@ -4,23 +4,19 @@
|
||||
*/
|
||||
import { getRouteInjectable } from "../../router/router.injectable";
|
||||
import { route } from "../../router/route";
|
||||
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
||||
import { buildVersionInitializable } from "../../../features/vars/build-version/common/token";
|
||||
|
||||
const getVersionRouteInjectable = getRouteInjectable({
|
||||
id: "get-version-route",
|
||||
|
||||
instantiate: (di) => {
|
||||
const buildVersion = di.inject(buildVersionInjectable);
|
||||
|
||||
return route({
|
||||
method: "get",
|
||||
path: `/version`,
|
||||
})(() => ({
|
||||
response: {
|
||||
version: buildVersion.get(),
|
||||
},
|
||||
}));
|
||||
},
|
||||
instantiate: (di) => route({
|
||||
method: "get",
|
||||
path: `/version`,
|
||||
})(() => ({
|
||||
response: {
|
||||
version: di.inject(buildVersionInitializable.stateToken),
|
||||
},
|
||||
})),
|
||||
});
|
||||
|
||||
export default getVersionRouteInjectable;
|
||||
@@ -19,7 +19,6 @@ import getBasenameOfPathInjectable from "../../../common/path/get-basename.injec
|
||||
import computeShellEnvironmentInjectable from "../../../features/shell-sync/main/compute-shell-environment.injectable";
|
||||
import spawnPtyInjectable from "../spawn-pty.injectable";
|
||||
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
||||
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
||||
import emitAppEventInjectable from "../../../common/app-event-bus/emit-event.injectable";
|
||||
import statInjectable from "../../../common/fs/stat.injectable";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
@@ -27,6 +26,7 @@ import userPreferencesStateInjectable from "../../../features/user-preferences/c
|
||||
import userShellSettingInjectable from "../../../features/user-preferences/common/shell-setting.injectable";
|
||||
import shellSessionEnvsInjectable from "../shell-envs.injectable";
|
||||
import shellSessionProcessesInjectable from "../processes.injectable";
|
||||
import { buildVersionInitializable } from "../../../features/vars/build-version/common/token";
|
||||
|
||||
export interface OpenLocalShellSessionArgs {
|
||||
websocket: WebSocket;
|
||||
@@ -49,7 +49,7 @@ const openLocalShellSessionInjectable = getInjectable({
|
||||
state: di.inject(userPreferencesStateInjectable),
|
||||
userShellSetting: di.inject(userShellSettingInjectable),
|
||||
appName: di.inject(appNameInjectable),
|
||||
buildVersion: di.inject(buildVersionInjectable),
|
||||
buildVersion: di.inject(buildVersionInitializable.stateToken),
|
||||
shellSessionEnvs: di.inject(shellSessionEnvsInjectable),
|
||||
shellSessionProcesses: di.inject(shellSessionProcessesInjectable),
|
||||
modifyTerminalShellEnv: di.inject(modifyTerminalShellEnvInjectable),
|
||||
|
||||
@@ -14,13 +14,13 @@ import readJsonSyncInjectable from "../../../common/fs/read-json-sync.injectable
|
||||
import statInjectable from "../../../common/fs/stat.injectable";
|
||||
import writeJsonSyncInjectable from "../../../common/fs/write-json-sync.injectable";
|
||||
import platformInjectable from "../../../common/vars/platform.injectable";
|
||||
import { buildVersionStateInjectable } from "../../../features/vars/build-version/main/init.injectable";
|
||||
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||
import type { KubeconfigManager } from "../../kubeconfig-manager/kubeconfig-manager";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
import createKubectlInjectable from "../../kubectl/create-kubectl.injectable";
|
||||
import type { Kubectl } from "../../kubectl/kubectl";
|
||||
import lensProxyPortInjectable from "../../lens-proxy/lens-proxy-port.injectable";
|
||||
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
||||
import type { OpenShellSession } from "../create-shell-session.injectable";
|
||||
import type { SpawnPty } from "../spawn-pty.injectable";
|
||||
import spawnPtyInjectable from "../spawn-pty.injectable";
|
||||
@@ -34,9 +34,7 @@ describe("technical unit tests for local shell sessions", () => {
|
||||
|
||||
di.override(directoryForUserDataInjectable, () => "/some-directory-for-user-data");
|
||||
di.override(directoryForTempInjectable, () => "/some-directory-for-tmp");
|
||||
di.override(buildVersionInjectable, () => ({
|
||||
get: () => "1.1.1",
|
||||
}));
|
||||
di.override(buildVersionStateInjectable, () => "1.1.1");
|
||||
di.override(pathExistsInjectable, () => () => { throw new Error("tried call pathExists without override"); });
|
||||
di.override(pathExistsSyncInjectable, () => () => { throw new Error("tried call pathExistsSync without override"); });
|
||||
di.override(readJsonSyncInjectable, () => () => { throw new Error("tried call readJsonSync without override"); });
|
||||
|
||||
@@ -15,7 +15,6 @@ import createKubeJsonApiForClusterInjectable from "../../../common/k8s-api/creat
|
||||
import computeShellEnvironmentInjectable from "../../../features/shell-sync/main/compute-shell-environment.injectable";
|
||||
import spawnPtyInjectable from "../spawn-pty.injectable";
|
||||
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
||||
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
||||
import emitAppEventInjectable from "../../../common/app-event-bus/emit-event.injectable";
|
||||
import statInjectable from "../../../common/fs/stat.injectable";
|
||||
import createKubeApiInjectable from "../../../common/k8s-api/create-kube-api.injectable";
|
||||
@@ -24,6 +23,7 @@ import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-man
|
||||
import userShellSettingInjectable from "../../../features/user-preferences/common/shell-setting.injectable";
|
||||
import shellSessionEnvsInjectable from "../shell-envs.injectable";
|
||||
import shellSessionProcessesInjectable from "../processes.injectable";
|
||||
import { buildVersionInitializable } from "../../../features/vars/build-version/common/token";
|
||||
|
||||
export interface NodeShellSessionArgs {
|
||||
websocket: WebSocket;
|
||||
@@ -44,7 +44,7 @@ const openNodeShellSessionInjectable = getInjectable({
|
||||
logger: di.inject(loggerInjectable),
|
||||
userShellSetting: di.inject(userShellSettingInjectable),
|
||||
appName: di.inject(appNameInjectable),
|
||||
buildVersion: di.inject(buildVersionInjectable),
|
||||
buildVersion: di.inject(buildVersionInitializable.stateToken),
|
||||
shellSessionEnvs: di.inject(shellSessionEnvsInjectable),
|
||||
shellSessionProcesses: di.inject(shellSessionProcessesInjectable),
|
||||
createKubeJsonApiForCluster: di.inject(createKubeJsonApiForClusterInjectable),
|
||||
|
||||
@@ -15,7 +15,6 @@ import { type TerminalMessage, TerminalChannels } from "../../common/terminal/ch
|
||||
import type { Logger } from "../../common/logger";
|
||||
import type { ComputeShellEnvironment } from "../../features/shell-sync/main/compute-shell-environment.injectable";
|
||||
import type { SpawnPty } from "./spawn-pty.injectable";
|
||||
import type { InitializableState } from "../../common/initializable-state/create";
|
||||
import type { EmitAppEvent } from "../../common/app-event-bus/emit-event.injectable";
|
||||
import type { Stat } from "../../common/fs/stat.injectable";
|
||||
import type { IComputedValue } from "mobx";
|
||||
@@ -112,7 +111,7 @@ export interface ShellSessionDependencies {
|
||||
readonly logger: Logger;
|
||||
readonly userShellSetting: IComputedValue<string>;
|
||||
readonly appName: string;
|
||||
readonly buildVersion: InitializableState<string>;
|
||||
readonly buildVersion: string;
|
||||
readonly proxyKubeconfigPath: string;
|
||||
readonly directoryContainingKubectl: string;
|
||||
readonly shellSessionEnvs: ShellSessionEnvs;
|
||||
@@ -363,7 +362,7 @@ export abstract class ShellSession {
|
||||
env.PTYPID = process.pid.toString();
|
||||
env.KUBECONFIG = this.dependencies.proxyKubeconfigPath;
|
||||
env.TERM_PROGRAM = this.dependencies.appName;
|
||||
env.TERM_PROGRAM_VERSION = this.dependencies.buildVersion.get();
|
||||
env.TERM_PROGRAM_VERSION = this.dependencies.buildVersion;
|
||||
|
||||
if (this.cluster.preferences.httpsProxy) {
|
||||
env.HTTPS_PROXY = this.cluster.preferences.httpsProxy;
|
||||
|
||||
+5
-5
@@ -10,11 +10,11 @@ import lensProxyPortInjectable from "../../lens-proxy/lens-proxy-port.injectable
|
||||
import isWindowsInjectable from "../../../common/vars/is-windows.injectable";
|
||||
import showErrorPopupInjectable from "../../electron-app/features/show-error-popup.injectable";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
||||
import initializeBuildVersionInjectable from "../../vars/build-version/init.injectable";
|
||||
import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable";
|
||||
import fetchInjectable from "../../../common/fetch/fetch.injectable";
|
||||
import { Agent } from "https";
|
||||
import { buildVersionInitializable } from "../../../features/vars/build-version/common/token";
|
||||
import { buildVersionInitializationInjectable } from "../../../features/vars/build-version/main/init.injectable";
|
||||
|
||||
const setupLensProxyInjectable = getInjectable({
|
||||
id: "setup-lens-proxy",
|
||||
@@ -27,7 +27,7 @@ const setupLensProxyInjectable = getInjectable({
|
||||
const lensProxyPort = di.inject(lensProxyPortInjectable);
|
||||
const isWindows = di.inject(isWindowsInjectable);
|
||||
const showErrorPopup = di.inject(showErrorPopupInjectable);
|
||||
const buildVersion = di.inject(buildVersionInjectable);
|
||||
const buildVersion = di.inject(buildVersionInitializable.stateToken);
|
||||
const lensProxyCertificate = di.inject(lensProxyCertificateInjectable);
|
||||
const fetch = di.inject(fetchInjectable);
|
||||
|
||||
@@ -51,7 +51,7 @@ const setupLensProxyInjectable = getInjectable({
|
||||
|
||||
const { version: versionFromProxy } = await versionResponse.json() as { version: string };
|
||||
|
||||
if (buildVersion.get() !== versionFromProxy) {
|
||||
if (buildVersion !== versionFromProxy) {
|
||||
logger.error("Proxy server responded with invalid response");
|
||||
|
||||
return forceAppExit();
|
||||
@@ -76,7 +76,7 @@ const setupLensProxyInjectable = getInjectable({
|
||||
return forceAppExit();
|
||||
}
|
||||
},
|
||||
runAfter: initializeBuildVersionInjectable,
|
||||
runAfter: buildVersionInitializationInjectable,
|
||||
}),
|
||||
|
||||
causesSideEffects: true,
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { createInitializableState } from "../../../common/initializable-state/create";
|
||||
import { buildVersionInjectionToken } from "../../../common/vars/build-semantic-version.injectable";
|
||||
import getBuildVersionInjectable from "./get-build-version.injectable";
|
||||
|
||||
const buildVersionInjectable = createInitializableState({
|
||||
id: "build-version",
|
||||
init: (di) => {
|
||||
const getBuildVersion = di.inject(getBuildVersionInjectable);
|
||||
|
||||
return getBuildVersion();
|
||||
},
|
||||
injectionToken: buildVersionInjectionToken,
|
||||
});
|
||||
|
||||
export default buildVersionInjectable;
|
||||
@@ -1,21 +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 { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||
import buildVersionInjectable from "./build-version.injectable";
|
||||
|
||||
const initializeBuildVersionInjectable = getInjectable({
|
||||
id: "initialize-build-version",
|
||||
instantiate: (di) => ({
|
||||
run: async () => {
|
||||
const buildVersion = di.inject(buildVersionInjectable);
|
||||
|
||||
await buildVersion.init();
|
||||
},
|
||||
}),
|
||||
injectionToken: beforeApplicationIsLoadingInjectionToken,
|
||||
});
|
||||
|
||||
export default initializeBuildVersionInjectable;
|
||||
@@ -5,7 +5,7 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import buildSemanticVersionInjectable from "../../../common/vars/build-semantic-version.injectable";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||
import initializeBuildVersionInjectable from "../build-version/init.injectable";
|
||||
import { buildVersionInitializationInjectable } from "../../../features/vars/build-version/main/init.injectable";
|
||||
|
||||
const initSemanticBuildVersionInjectable = getInjectable({
|
||||
id: "init-semantic-build-version",
|
||||
@@ -16,7 +16,7 @@ const initSemanticBuildVersionInjectable = getInjectable({
|
||||
|
||||
await buildSemanticVersion.init();
|
||||
},
|
||||
runAfter: initializeBuildVersionInjectable,
|
||||
runAfter: buildVersionInitializationInjectable,
|
||||
};
|
||||
},
|
||||
injectionToken: beforeApplicationIsLoadingInjectionToken,
|
||||
|
||||
Reference in new issue
Block a user