mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Switch to using start application from Feature (#7260)
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
a9bd5ae7e2
commit
129565f08a
@ -135,6 +135,7 @@
|
|||||||
"@ogre-tools/injectable-extension-for-auto-registration": "^15.1.2",
|
"@ogre-tools/injectable-extension-for-auto-registration": "^15.1.2",
|
||||||
"@ogre-tools/injectable-extension-for-mobx": "^15.1.2",
|
"@ogre-tools/injectable-extension-for-mobx": "^15.1.2",
|
||||||
"@ogre-tools/injectable-react": "^15.1.2",
|
"@ogre-tools/injectable-react": "^15.1.2",
|
||||||
|
"@ogre-tools/injectable-utils": "^15.1.2",
|
||||||
"@sentry/electron": "^3.0.8",
|
"@sentry/electron": "^3.0.8",
|
||||||
"@sentry/integrations": "^6.19.3",
|
"@sentry/integrations": "^6.19.3",
|
||||||
"@side/jest-runtime": "^1.1.0",
|
"@side/jest-runtime": "^1.1.0",
|
||||||
@ -330,6 +331,7 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@k8slens/application": "^6.5.0-alpha.0",
|
"@k8slens/application": "^6.5.0-alpha.0",
|
||||||
|
"@k8slens/application-for-electron-main": "^6.5.0-alpha.0",
|
||||||
"@types/byline": "^4.2.33",
|
"@types/byline": "^4.2.33",
|
||||||
"@types/chart.js": "^2.9.36",
|
"@types/chart.js": "^2.9.36",
|
||||||
"@types/color": "^3.0.3",
|
"@types/color": "^3.0.3",
|
||||||
|
|||||||
@ -1,17 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import type { DiContainerForInjection } from "@ogre-tools/injectable";
|
|
||||||
|
|
||||||
export interface ApplicationConfig {
|
|
||||||
mode: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface Application {
|
|
||||||
start: () => Promise<void>;
|
|
||||||
readonly di: DiContainerForInjection;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type CreateApplication = (config: ApplicationConfig) => Application;
|
|
||||||
@ -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 nodeEnvInjectionToken from "./node-env-injection-token";
|
import { nodeEnvInjectionToken } from "./node-env-injection-token";
|
||||||
|
|
||||||
const isProductionInjectable = getInjectable({
|
const isProductionInjectable = getInjectable({
|
||||||
id: "is-production",
|
id: "is-production",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
|
|
||||||
const nodeEnvInjectionToken = getInjectionToken<string | undefined>({
|
export const nodeEnvInjectionToken = getInjectionToken<string | undefined>({
|
||||||
id: "node-env-injection-token",
|
id: "node-env-injection-token",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -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 nodeEnvInjectionToken from "./node-env-injection-token";
|
import { nodeEnvInjectionToken } from "./node-env-injection-token";
|
||||||
|
|
||||||
const nodeEnvFakeInjectable = getInjectable({
|
const nodeEnvFakeInjectable = getInjectable({
|
||||||
id: "node-env-fake",
|
id: "node-env-fake",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationMenuReactivityInjectable from "./application-menu-reactivity.injectable";
|
import applicationMenuReactivityInjectable from "./application-menu-reactivity.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const startApplicationMenuInjectable = getInjectable({
|
const startApplicationMenuInjectable = getInjectable({
|
||||||
id: "start-application-menu",
|
id: "start-application-menu",
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import periodicalCheckForUpdatesInjectable from "./periodical-check-for-updates.injectable";
|
import periodicalCheckForUpdatesInjectable from "./periodical-check-for-updates.injectable";
|
||||||
import updatingIsEnabledInjectable from "../../../main/updating-is-enabled/updating-is-enabled.injectable";
|
import updatingIsEnabledInjectable from "../../../main/updating-is-enabled/updating-is-enabled.injectable";
|
||||||
import { afterApplicationIsLoadedInjectionToken } from "../../../../../main/start-main-application/runnable-tokens/after-application-is-loaded-injection-token";
|
import { afterApplicationIsLoadedInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const startCheckingForUpdatesInjectable = getInjectable({
|
const startCheckingForUpdatesInjectable = getInjectable({
|
||||||
id: "start-checking-for-updates",
|
id: "start-checking-for-updates",
|
||||||
|
|||||||
@ -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 { afterApplicationIsLoadedInjectionToken } from "../../../main/start-main-application/runnable-tokens/after-application-is-loaded-injection-token";
|
import { afterApplicationIsLoadedInjectionToken } from "@k8slens/application";
|
||||||
import emitAppEventInjectable from "../../../common/app-event-bus/emit-event.injectable";
|
import emitAppEventInjectable from "../../../common/app-event-bus/emit-event.injectable";
|
||||||
import { getCurrentDateTime } from "../../../common/utils/date/get-current-date-time";
|
import { getCurrentDateTime } from "../../../common/utils/date/get-current-date-time";
|
||||||
import buildVersionInjectable from "../../../main/vars/build-version/build-version.injectable";
|
import buildVersionInjectable from "../../../main/vars/build-version/build-version.injectable";
|
||||||
|
|||||||
@ -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 { onLoadOfApplicationInjectionToken } from "../../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import watchIfUpdateShouldHappenOnQuitInjectable from "./watch-if-update-should-happen-on-quit.injectable";
|
import watchIfUpdateShouldHappenOnQuitInjectable from "./watch-if-update-should-happen-on-quit.injectable";
|
||||||
|
|
||||||
const startWatchingIfUpdateShouldHappenOnQuitInjectable = getInjectable({
|
const startWatchingIfUpdateShouldHappenOnQuitInjectable = getInjectable({
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { isEqual } from "lodash";
|
|||||||
import { autorun } from "mobx";
|
import { autorun } from "mobx";
|
||||||
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
||||||
import type { ClusterId, ClusterState } from "../../../../common/cluster-types";
|
import type { ClusterId, ClusterState } from "../../../../common/cluster-types";
|
||||||
import { beforeApplicationIsLoadingInjectionToken } from "../../../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import initClusterStoreInjectable from "../../store/main/init.injectable";
|
import initClusterStoreInjectable from "../../store/main/init.injectable";
|
||||||
import emitClusterStateUpdateInjectable from "./emit-update.injectable";
|
import emitClusterStateUpdateInjectable from "./emit-update.injectable";
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
||||||
import { beforeApplicationIsLoadingInjectionToken } from "../../../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import initUserStoreInjectable from "../../../../main/stores/init-user-store.injectable";
|
import initUserStoreInjectable from "../../../../main/stores/init-user-store.injectable";
|
||||||
|
|
||||||
const initClusterStoreInjectable = getInjectable({
|
const initClusterStoreInjectable = getInjectable({
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import fileSystemProvisionerStoreInjectable from "../../../extensions/extension-loader/file-system-provisioner-store/file-system-provisioner-store.injectable";
|
import fileSystemProvisionerStoreInjectable from "../../../extensions/extension-loader/file-system-provisioner-store/file-system-provisioner-store.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const initFileSystemProvisionerStoreInjectable = getInjectable({
|
const initFileSystemProvisionerStoreInjectable = getInjectable({
|
||||||
id: "init-file-system-provisioner-store",
|
id: "init-file-system-provisioner-store",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import hotbarStoreInjectable from "../../../../common/hotbars/store.injectable";
|
import hotbarStoreInjectable from "../../../../common/hotbars/store.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import setupSyncingOfGeneralCatalogEntitiesInjectable from "../../../../main/start-main-application/runnables/setup-syncing-of-general-catalog-entities.injectable";
|
import setupSyncingOfGeneralCatalogEntitiesInjectable from "../../../../main/start-main-application/runnables/setup-syncing-of-general-catalog-entities.injectable";
|
||||||
|
|
||||||
const initHotbarStoreInjectable = getInjectable({
|
const initHotbarStoreInjectable = getInjectable({
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import loggerInjectable from "../../../common/logger.injectable";
|
import loggerInjectable from "../../../common/logger.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import { unionPATHs } from "../../../common/utils/union-env-path";
|
import { unionPATHs } from "../../../common/utils/union-env-path";
|
||||||
import isSnapPackageInjectable from "../../../common/vars/is-snap-package.injectable";
|
import isSnapPackageInjectable from "../../../common/vars/is-snap-package.injectable";
|
||||||
import electronAppInjectable from "../../../main/electron-app/electron-app.injectable";
|
import electronAppInjectable from "../../../main/electron-app/electron-app.injectable";
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { reaction } from "mobx";
|
import { reaction } from "mobx";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import operatingSystemThemeInjectable from "../../../../main/theme/operating-system-theme.injectable";
|
import operatingSystemThemeInjectable from "../../../../main/theme/operating-system-theme.injectable";
|
||||||
import emitSystemThemeTypeUpdateInjectable from "./emit-update.injectable";
|
import emitSystemThemeTypeUpdateInjectable from "./emit-update.injectable";
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import { fromPairs, map } from "lodash/fp";
|
|||||||
import { pipeline } from "@ogre-tools/fp";
|
import { pipeline } from "@ogre-tools/fp";
|
||||||
import joinPathsInjectable from "../../common/path/join-paths.injectable";
|
import joinPathsInjectable from "../../common/path/join-paths.injectable";
|
||||||
import appNameInjectable from "../../common/vars/app-name.injectable";
|
import appNameInjectable from "../../common/vars/app-name.injectable";
|
||||||
import { appPathsRunnablePhaseInjectionToken } from "../start-main-application/runnable-tokens/phases";
|
import { beforeAnythingInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
|
|
||||||
const setupAppPathsInjectable = getInjectable({
|
const setupAppPathsInjectable = getInjectable({
|
||||||
id: "setup-app-paths",
|
id: "setup-app-paths",
|
||||||
@ -51,7 +51,7 @@ const setupAppPathsInjectable = getInjectable({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
injectionToken: appPathsRunnablePhaseInjectionToken,
|
injectionToken: beforeAnythingInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default setupAppPathsInjectable;
|
export default setupAppPathsInjectable;
|
||||||
|
|||||||
@ -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 { onLoadOfApplicationInjectionToken } from "../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import clusterManagerInjectable from "./manager.injectable";
|
import clusterManagerInjectable from "./manager.injectable";
|
||||||
|
|
||||||
const initializeClusterManagerInjectable = getInjectable({
|
const initializeClusterManagerInjectable = getInjectable({
|
||||||
|
|||||||
@ -1,32 +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 { runInAction } from "mobx";
|
|
||||||
import type { CreateApplication } from "../common/create-app";
|
|
||||||
import nodeEnvInjectionToken from "../common/vars/node-env-injection-token";
|
|
||||||
import { getDi } from "./getDi";
|
|
||||||
import { registerInjectables } from "./register-injectables";
|
|
||||||
import startMainApplicationInjectable from "./start-main-application/start-main-application.injectable";
|
|
||||||
|
|
||||||
export const createApplication: CreateApplication = (config) => {
|
|
||||||
const { mode } = config;
|
|
||||||
const di = getDi();
|
|
||||||
|
|
||||||
runInAction(() => {
|
|
||||||
di.register(getInjectable({
|
|
||||||
id: "node-env",
|
|
||||||
instantiate: () => mode,
|
|
||||||
injectionToken: nodeEnvInjectionToken,
|
|
||||||
}));
|
|
||||||
|
|
||||||
registerInjectables(di);
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
start: di.inject(startMainApplicationInjectable),
|
|
||||||
di,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -1,14 +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 electronAppInjectable from "../electron-app.injectable";
|
|
||||||
|
|
||||||
const waitForElectronToBeReadyInjectable = getInjectable({
|
|
||||||
id: "wait-for-electron-to-be-ready",
|
|
||||||
|
|
||||||
instantiate: (di) => () => di.inject(electronAppInjectable).whenReady(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export default waitForElectronToBeReadyInjectable;
|
|
||||||
@ -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 { beforeElectronIsReadyInjectionToken } from "../../start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
import requestSingleInstanceLockInjectable from "../features/request-single-instance-lock.injectable";
|
import requestSingleInstanceLockInjectable from "../features/request-single-instance-lock.injectable";
|
||||||
import exitAppInjectable from "../features/exit-app.injectable";
|
import exitAppInjectable from "../features/exit-app.injectable";
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
||||||
import { beforeElectronIsReadyInjectionToken } from "../../start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
import electronAppInjectable from "../electron-app.injectable";
|
import electronAppInjectable from "../electron-app.injectable";
|
||||||
|
|
||||||
const setupApplicationNameInjectable = getInjectable({
|
const setupApplicationNameInjectable = getInjectable({
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import loggerInjectable from "../../../common/logger.injectable";
|
|||||||
import commandLineArgumentsInjectable from "../../utils/command-line-arguments.injectable";
|
import commandLineArgumentsInjectable from "../../utils/command-line-arguments.injectable";
|
||||||
import { pipeline } from "@ogre-tools/fp";
|
import { pipeline } from "@ogre-tools/fp";
|
||||||
import { find, startsWith, toLower, map } from "lodash/fp";
|
import { find, startsWith, toLower, map } from "lodash/fp";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import showApplicationWindowInjectable from "../../start-main-application/lens-window/show-application-window.injectable";
|
import showApplicationWindowInjectable from "../../start-main-application/lens-window/show-application-window.injectable";
|
||||||
|
|
||||||
const setupDeepLinkingInjectable = getInjectable({
|
const setupDeepLinkingInjectable = getInjectable({
|
||||||
|
|||||||
@ -3,9 +3,9 @@
|
|||||||
* 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 nodeEnvInjectionToken from "../../../common/vars/node-env-injection-token";
|
import { nodeEnvInjectionToken } from "../../../common/vars/node-env-injection-token";
|
||||||
import loggerInjectable from "../../../common/logger.injectable";
|
import loggerInjectable from "../../../common/logger.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const setupDeveloperToolsInDevelopmentEnvironmentInjectable = getInjectable({
|
const setupDeveloperToolsInDevelopmentEnvironmentInjectable = getInjectable({
|
||||||
id: "setup-developer-tools-in-development-environment",
|
id: "setup-developer-tools-in-development-environment",
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import powerMonitorInjectable from "../features/power-monitor.injectable";
|
import powerMonitorInjectable from "../features/power-monitor.injectable";
|
||||||
import exitAppInjectable from "../features/exit-app.injectable";
|
import exitAppInjectable from "../features/exit-app.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const setupDeviceShutdownInjectable = getInjectable({
|
const setupDeviceShutdownInjectable = getInjectable({
|
||||||
id: "setup-device-shutdown",
|
id: "setup-device-shutdown",
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import { setupIpcMainHandlers } from "./setup-ipc-main-handlers";
|
import { setupIpcMainHandlers } from "./setup-ipc-main-handlers";
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import applicationMenuItemCompositeInjectable from "../../../../features/application-menu/main/application-menu-item-composite.injectable";
|
import applicationMenuItemCompositeInjectable from "../../../../features/application-menu/main/application-menu-item-composite.injectable";
|
||||||
import emitAppEventInjectable from "../../../../common/app-event-bus/emit-event.injectable";
|
import emitAppEventInjectable from "../../../../common/app-event-bus/emit-event.injectable";
|
||||||
import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable";
|
import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable";
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import electronAppInjectable from "../electron-app.injectable";
|
import electronAppInjectable from "../electron-app.injectable";
|
||||||
import loggerInjectable from "../../../common/logger.injectable";
|
import loggerInjectable from "../../../common/logger.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import showApplicationWindowInjectable from "../../start-main-application/lens-window/show-application-window.injectable";
|
import showApplicationWindowInjectable from "../../start-main-application/lens-window/show-application-window.injectable";
|
||||||
|
|
||||||
const setupMainWindowVisibilityAfterActivationInjectable = getInjectable({
|
const setupMainWindowVisibilityAfterActivationInjectable = getInjectable({
|
||||||
|
|||||||
@ -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 { beforeElectronIsReadyInjectionToken } from "../../start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
import electronAppInjectable from "../electron-app.injectable";
|
import electronAppInjectable from "../electron-app.injectable";
|
||||||
import { runManyFor } from "../../../common/runnable/run-many-for";
|
import { runManyFor } from "../../../common/runnable/run-many-for";
|
||||||
import { afterWindowIsOpenedInjectionToken } from "../../start-main-application/runnable-tokens/after-window-is-opened-injection-token";
|
import { afterWindowIsOpenedInjectionToken } from "../../start-main-application/runnable-tokens/after-window-is-opened-injection-token";
|
||||||
|
|||||||
@ -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 { beforeElectronIsReadyInjectionToken } from "../../start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
import { beforeQuitOfFrontEndInjectionToken } from "../../start-main-application/runnable-tokens/before-quit-of-front-end-injection-token";
|
import { beforeQuitOfFrontEndInjectionToken } from "../../start-main-application/runnable-tokens/before-quit-of-front-end-injection-token";
|
||||||
import { beforeQuitOfBackEndInjectionToken } from "../../start-main-application/runnable-tokens/before-quit-of-back-end-injection-token";
|
import { beforeQuitOfBackEndInjectionToken } from "../../start-main-application/runnable-tokens/before-quit-of-back-end-injection-token";
|
||||||
import electronAppInjectable from "../electron-app.injectable";
|
import electronAppInjectable from "../electron-app.injectable";
|
||||||
|
|||||||
@ -1,17 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
import { createContainer } from "@ogre-tools/injectable";
|
|
||||||
import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
|
|
||||||
import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
|
||||||
|
|
||||||
export const getDi = () => {
|
|
||||||
const environment = "main";
|
|
||||||
const di = createContainer(environment);
|
|
||||||
|
|
||||||
registerMobX(di);
|
|
||||||
setLegacyGlobalDiForExtensionApi(di, environment);
|
|
||||||
|
|
||||||
return di;
|
|
||||||
};
|
|
||||||
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { chunk } from "lodash/fp";
|
import { chunk } from "lodash/fp";
|
||||||
import type { DiContainer } from "@ogre-tools/injectable";
|
import type { DiContainer } from "@ogre-tools/injectable";
|
||||||
import { isInjectable } from "@ogre-tools/injectable";
|
import { createContainer, isInjectable } from "@ogre-tools/injectable";
|
||||||
import spawnInjectable from "./child-process/spawn.injectable";
|
import spawnInjectable from "./child-process/spawn.injectable";
|
||||||
import initializeExtensionsInjectable from "./start-main-application/runnables/initialize-extensions.injectable";
|
import initializeExtensionsInjectable from "./start-main-application/runnables/initialize-extensions.injectable";
|
||||||
import setupIpcMainHandlersInjectable from "./electron-app/runnables/setup-ipc-main-handlers/setup-ipc-main-handlers.injectable";
|
import setupIpcMainHandlersInjectable from "./electron-app/runnables/setup-ipc-main-handlers/setup-ipc-main-handlers.injectable";
|
||||||
@ -28,14 +28,20 @@ import electronInjectable from "./utils/resolve-system-proxy/electron.injectable
|
|||||||
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
||||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes";
|
import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes";
|
||||||
import { getDi } from "./getDi";
|
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";
|
||||||
|
|
||||||
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
||||||
const {
|
const {
|
||||||
doGeneralOverrides = false,
|
doGeneralOverrides = false,
|
||||||
} = opts;
|
} = opts;
|
||||||
|
|
||||||
const di = getDi();
|
const di = createContainer("main");
|
||||||
|
|
||||||
|
registerMobX(di);
|
||||||
|
setLegacyGlobalDiForExtensionApi(di, "main");
|
||||||
|
|
||||||
di.preventSideEffects();
|
di.preventSideEffects();
|
||||||
|
|
||||||
|
|||||||
@ -4,12 +4,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// @experimental
|
// @experimental
|
||||||
export { afterApplicationIsLoadedInjectionToken } from "./start-main-application/runnable-tokens/after-application-is-loaded-injection-token";
|
export type {
|
||||||
export { beforeApplicationIsLoadingInjectionToken } from "./start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
Environments,
|
||||||
export { beforeElectronIsReadyInjectionToken } from "./start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
} from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
||||||
export { onLoadOfApplicationInjectionToken } from "./start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
|
||||||
export { createApplication } from "./create-app";
|
export { registerLensCore } from "./register-lens-core";
|
||||||
export type { CreateApplication, Application, ApplicationConfig } from "../common/create-app";
|
export { nodeEnvInjectionToken } from "../common/vars/node-env-injection-token";
|
||||||
export * as Mobx from "mobx";
|
export * as Mobx from "mobx";
|
||||||
export * as mainExtensionApi from "../extensions/main-api";
|
export * as mainExtensionApi from "../extensions/main-api";
|
||||||
export * as commonExtensionApi from "../extensions/common-api";
|
export * as commonExtensionApi from "../extensions/common-api";
|
||||||
|
|||||||
@ -2,20 +2,26 @@
|
|||||||
* 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 { DiContainer } from "@ogre-tools/injectable";
|
import type { DiContainer } from "@ogre-tools/injectable";
|
||||||
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
||||||
import { runInAction } from "mobx";
|
import { runInAction } from "mobx";
|
||||||
|
import type {
|
||||||
|
Environments } 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";
|
||||||
|
|
||||||
|
export function registerLensCore(di: DiContainer, environment: Environments) {
|
||||||
|
setLegacyGlobalDiForExtensionApi(di, environment);
|
||||||
|
|
||||||
export function registerInjectables(di: DiContainer) {
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
autoRegister({
|
autoRegister({
|
||||||
di,
|
di,
|
||||||
targetModule: module,
|
targetModule: module,
|
||||||
getRequireContexts: () => [
|
getRequireContexts: () => [
|
||||||
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
|
||||||
require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
|
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
require.context("../features", true, CONTEXT_MATCHER_FOR_FEATURES),
|
require.context("../features", true, CONTEXT_MATCHER_FOR_FEATURES),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
|
||||||
import type { RunnableSync } from "../../../common/runnable/run-many-sync-for";
|
|
||||||
|
|
||||||
export const beforeElectronIsReadyInjectionToken = getInjectionToken<RunnableSync>({
|
|
||||||
id: "before-electron-is-ready",
|
|
||||||
});
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
|
||||||
import type { Runnable } from "../../../common/runnable/run-many-for";
|
|
||||||
import type { RunnableSync } from "../../../common/runnable/run-many-sync-for";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* These tokens are here so that the importing of their respective dependencies
|
|
||||||
* can be delayed until all of them are ready
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This runnable token should only have the app paths init so that it can be run by itself
|
|
||||||
*/
|
|
||||||
export const appPathsRunnablePhaseInjectionToken = getInjectionToken<RunnableSync>({
|
|
||||||
id: "app-paths-runnable-phase",
|
|
||||||
});
|
|
||||||
|
|
||||||
export const showLoadingRunnablePhaseInjectionToken = getInjectionToken<Runnable>({
|
|
||||||
id: "show-loading-runnable-phase",
|
|
||||||
});
|
|
||||||
|
|
||||||
export const showInitialWindowRunnablePhaseInjectionToken = getInjectionToken<Runnable>({
|
|
||||||
id: "show-initial-window-runnable-phase",
|
|
||||||
});
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import emitAppEventInjectable from "../../../common/app-event-bus/emit-event.injectable";
|
import emitAppEventInjectable from "../../../common/app-event-bus/emit-event.injectable";
|
||||||
import { afterApplicationIsLoadedInjectionToken } from "../runnable-tokens/after-application-is-loaded-injection-token";
|
import { afterApplicationIsLoadedInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const emitServiceStartToEventBusInjectable = getInjectable({
|
const emitServiceStartToEventBusInjectable = getInjectable({
|
||||||
id: "emit-service-start-to-event-bus",
|
id: "emit-service-start-to-event-bus",
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import loggerInjectable from "../../../common/logger.injectable";
|
|||||||
import extensionDiscoveryInjectable from "../../../extensions/extension-discovery/extension-discovery.injectable";
|
import extensionDiscoveryInjectable from "../../../extensions/extension-discovery/extension-discovery.injectable";
|
||||||
import extensionLoaderInjectable from "../../../extensions/extension-loader/extension-loader.injectable";
|
import extensionLoaderInjectable from "../../../extensions/extension-loader/extension-loader.injectable";
|
||||||
import showErrorPopupInjectable from "../../electron-app/features/show-error-popup.injectable";
|
import showErrorPopupInjectable from "../../electron-app/features/show-error-popup.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const initializeExtensionsInjectable = getInjectable({
|
const initializeExtensionsInjectable = getInjectable({
|
||||||
id: "initialize-extensions",
|
id: "initialize-extensions",
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import kubeconfigSyncManagerInjectable from "../../../catalog-sources/kubeconfig-sync/manager.injectable";
|
import kubeconfigSyncManagerInjectable from "../../../catalog-sources/kubeconfig-sync/manager.injectable";
|
||||||
import catalogEntityRegistryInjectable from "../../../catalog/entity-registry.injectable";
|
import catalogEntityRegistryInjectable from "../../../catalog/entity-registry.injectable";
|
||||||
import { afterApplicationIsLoadedInjectionToken } from "../../runnable-tokens/after-application-is-loaded-injection-token";
|
import { afterApplicationIsLoadedInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const addKubeconfigSyncAsEntitySourceInjectable = getInjectable({
|
const addKubeconfigSyncAsEntitySourceInjectable = getInjectable({
|
||||||
id: "add-kubeconfig-sync-as-entity-source",
|
id: "add-kubeconfig-sync-as-entity-source",
|
||||||
|
|||||||
@ -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 { afterApplicationIsLoadedInjectionToken } from "../../runnable-tokens/after-application-is-loaded-injection-token";
|
import { afterApplicationIsLoadedInjectionToken } from "@k8slens/application";
|
||||||
import directoryForKubeConfigsInjectable from "../../../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
|
import directoryForKubeConfigsInjectable from "../../../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
|
||||||
import ensureDirInjectable from "../../../../common/fs/ensure-dir.injectable";
|
import ensureDirInjectable from "../../../../common/fs/ensure-dir.injectable";
|
||||||
import kubeconfigSyncManagerInjectable from "../../../catalog-sources/kubeconfig-sync/manager.injectable";
|
import kubeconfigSyncManagerInjectable from "../../../catalog-sources/kubeconfig-sync/manager.injectable";
|
||||||
|
|||||||
@ -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 { beforeElectronIsReadyInjectionToken } from "../../runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
import initializeSentryReportingWithInjectable from "../../../../common/error-reporting/initialize-sentry-reporting.injectable";
|
import initializeSentryReportingWithInjectable from "../../../../common/error-reporting/initialize-sentry-reporting.injectable";
|
||||||
import initializeSentryOnMainInjectable from "./initialize-on-main.injectable";
|
import initializeSentryOnMainInjectable from "./initialize-on-main.injectable";
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import disableHardwareAccelerationInjectable from "../../electron-app/features/disable-hardware-acceleration.injectable";
|
import disableHardwareAccelerationInjectable from "../../electron-app/features/disable-hardware-acceleration.injectable";
|
||||||
import hardwareAccelerationShouldBeDisabledInjectable from "../../vars/hardware-acceleration-should-be-disabled.injectable";
|
import hardwareAccelerationShouldBeDisabledInjectable from "../../vars/hardware-acceleration-should-be-disabled.injectable";
|
||||||
import { beforeElectronIsReadyInjectionToken } from "../runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
|
|
||||||
const setupHardwareAccelerationInjectable = getInjectable({
|
const setupHardwareAccelerationInjectable = getInjectable({
|
||||||
id: "setup-hardware-acceleration",
|
id: "setup-hardware-acceleration",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import electronAppInjectable from "../../electron-app/electron-app.injectable";
|
import electronAppInjectable from "../../electron-app/electron-app.injectable";
|
||||||
import { beforeElectronIsReadyInjectionToken } from "../runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
|
|
||||||
const setupHostnamesInjectable = getInjectable({
|
const setupHostnamesInjectable = getInjectable({
|
||||||
id: "setup-hostnames",
|
id: "setup-hostnames",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import * as Immer from "immer";
|
import * as Immer from "immer";
|
||||||
import { beforeElectronIsReadyInjectionToken } from "../runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
|
|
||||||
const setupImmerInjectable = getInjectable({
|
const setupImmerInjectable = getInjectable({
|
||||||
id: "setup-immer",
|
id: "setup-immer",
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { generate } from "selfsigned";
|
import { generate } from "selfsigned";
|
||||||
import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable";
|
import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable";
|
||||||
import { beforeElectronIsReadyInjectionToken } from "../runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
|
|
||||||
const setupLensProxyCertificateInjectable = getInjectable({
|
const setupLensProxyCertificateInjectable = getInjectable({
|
||||||
id: "setup-lens-proxy-certificate",
|
id: "setup-lens-proxy-certificate",
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import loggerInjectable from "../../../common/logger.injectable";
|
|||||||
import lensProxyPortInjectable from "../../lens-proxy/lens-proxy-port.injectable";
|
import lensProxyPortInjectable from "../../lens-proxy/lens-proxy-port.injectable";
|
||||||
import isWindowsInjectable from "../../../common/vars/is-windows.injectable";
|
import isWindowsInjectable from "../../../common/vars/is-windows.injectable";
|
||||||
import showErrorPopupInjectable from "../../electron-app/features/show-error-popup.injectable";
|
import showErrorPopupInjectable from "../../electron-app/features/show-error-popup.injectable";
|
||||||
import { beforeApplicationIsLoadingInjectionToken } from "../runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
||||||
import initializeBuildVersionInjectable from "../../vars/build-version/init.injectable";
|
import initializeBuildVersionInjectable from "../../vars/build-version/init.injectable";
|
||||||
import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable";
|
import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable";
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import * as Mobx from "mobx";
|
import * as Mobx from "mobx";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { beforeElectronIsReadyInjectionToken } from "../runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
|
|
||||||
const setupMobxInjectable = getInjectable({
|
const setupMobxInjectable = getInjectable({
|
||||||
id: "setup-mobx",
|
id: "setup-mobx",
|
||||||
|
|||||||
@ -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 { beforeElectronIsReadyInjectionToken } from "../runnable-tokens/before-electron-is-ready-injection-token";
|
import { beforeElectronIsReadyInjectionToken } from "@k8slens/application-for-electron-main";
|
||||||
import getCommandLineSwitchInjectable from "../../electron-app/features/get-command-line-switch.injectable";
|
import getCommandLineSwitchInjectable from "../../electron-app/features/get-command-line-switch.injectable";
|
||||||
|
|
||||||
const setupProxyEnvInjectable = getInjectable({
|
const setupProxyEnvInjectable = getInjectable({
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import syncGeneralCatalogEntitiesInjectable from "../../catalog-sources/sync-general-catalog-entities.injectable";
|
import syncGeneralCatalogEntitiesInjectable from "../../catalog-sources/sync-general-catalog-entities.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const setupSyncingOfGeneralCatalogEntitiesInjectable = getInjectable({
|
const setupSyncingOfGeneralCatalogEntitiesInjectable = getInjectable({
|
||||||
id: "setup-syncing-of-general-catalog-entities",
|
id: "setup-syncing-of-general-catalog-entities",
|
||||||
|
|||||||
@ -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 { onLoadOfApplicationInjectionToken } from "../runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import syncWeblinksInjectable from "../../catalog-sources/sync-weblinks.injectable";
|
import syncWeblinksInjectable from "../../catalog-sources/sync-weblinks.injectable";
|
||||||
|
|
||||||
const setupSyncingOfWeblinksInjectable = getInjectable({
|
const setupSyncingOfWeblinksInjectable = getInjectable({
|
||||||
|
|||||||
@ -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 { beforeApplicationIsLoadingInjectionToken } from "../runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import injectSystemCAsInjectable from "../../../features/certificate-authorities/common/inject-system-cas.injectable";
|
import injectSystemCAsInjectable from "../../../features/certificate-authorities/common/inject-system-cas.injectable";
|
||||||
|
|
||||||
const setupSystemCaInjectable = getInjectable({
|
const setupSystemCaInjectable = getInjectable({
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import openDeepLinkInjectable from "../../protocol-handler/lens-protocol-router-
|
|||||||
import commandLineArgumentsInjectable from "../../utils/command-line-arguments.injectable";
|
import commandLineArgumentsInjectable from "../../utils/command-line-arguments.injectable";
|
||||||
import createFirstApplicationWindowInjectable from "../lens-window/application-window/create-first-application-window.injectable";
|
import createFirstApplicationWindowInjectable from "../lens-window/application-window/create-first-application-window.injectable";
|
||||||
import splashWindowInjectable from "../lens-window/splash-window/splash-window.injectable";
|
import splashWindowInjectable from "../lens-window/splash-window/splash-window.injectable";
|
||||||
import { showInitialWindowRunnablePhaseInjectionToken } from "../runnable-tokens/phases";
|
import { afterApplicationIsLoadedInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const getDeepLinkUrl = (commandLineArguments: string[]) => (
|
const getDeepLinkUrl = (commandLineArguments: string[]) => (
|
||||||
commandLineArguments
|
commandLineArguments
|
||||||
@ -45,7 +45,7 @@ const showInitialWindowInjectable = getInjectable({
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
injectionToken: showInitialWindowRunnablePhaseInjectionToken,
|
injectionToken: afterApplicationIsLoadedInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default showInitialWindowInjectable;
|
export default showInitialWindowInjectable;
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import shouldStartHiddenInjectable from "../../electron-app/features/should-start-hidden.injectable";
|
import shouldStartHiddenInjectable from "../../electron-app/features/should-start-hidden.injectable";
|
||||||
import splashWindowInjectable from "../lens-window/splash-window/splash-window.injectable";
|
import splashWindowInjectable from "../lens-window/splash-window/splash-window.injectable";
|
||||||
import { showLoadingRunnablePhaseInjectionToken } from "../runnable-tokens/phases";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const showLoadingInjectable = getInjectable({
|
const showLoadingInjectable = getInjectable({
|
||||||
id: "show-loading",
|
id: "show-loading",
|
||||||
@ -23,7 +23,7 @@ const showLoadingInjectable = getInjectable({
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
injectionToken: showLoadingRunnablePhaseInjectionToken,
|
injectionToken: onLoadOfApplicationInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default showLoadingInjectable;
|
export default showLoadingInjectable;
|
||||||
|
|||||||
@ -1,50 +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 { runManyFor } from "../../common/runnable/run-many-for";
|
|
||||||
import { runManySyncFor } from "../../common/runnable/run-many-sync-for";
|
|
||||||
import { beforeElectronIsReadyInjectionToken } from "./runnable-tokens/before-electron-is-ready-injection-token";
|
|
||||||
import { beforeApplicationIsLoadingInjectionToken } from "./runnable-tokens/before-application-is-loading-injection-token";
|
|
||||||
import { onLoadOfApplicationInjectionToken } from "./runnable-tokens/on-load-of-application-injection-token";
|
|
||||||
import { afterApplicationIsLoadedInjectionToken } from "./runnable-tokens/after-application-is-loaded-injection-token";
|
|
||||||
import waitForElectronToBeReadyInjectable from "../electron-app/features/wait-for-electron-to-be-ready.injectable";
|
|
||||||
import { appPathsRunnablePhaseInjectionToken, showInitialWindowRunnablePhaseInjectionToken, showLoadingRunnablePhaseInjectionToken } from "./runnable-tokens/phases";
|
|
||||||
|
|
||||||
const startMainApplicationInjectable = getInjectable({
|
|
||||||
id: "start-main-application",
|
|
||||||
|
|
||||||
instantiate: (di) => {
|
|
||||||
const runMany = runManyFor(di);
|
|
||||||
const runManySync = runManySyncFor(di);
|
|
||||||
const waitForElectronToBeReady = di.inject(waitForElectronToBeReadyInjectable);
|
|
||||||
|
|
||||||
const appPathsRunnablePhase = runManySync(appPathsRunnablePhaseInjectionToken);
|
|
||||||
const beforeElectronIsReady = runManySync(beforeElectronIsReadyInjectionToken);
|
|
||||||
const beforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
|
||||||
const showLoadingRunnablePhase = runMany(showLoadingRunnablePhaseInjectionToken);
|
|
||||||
const onLoadOfApplication = runMany(onLoadOfApplicationInjectionToken);
|
|
||||||
const showInitialWindowRunnablePhase = runMany(showInitialWindowRunnablePhaseInjectionToken);
|
|
||||||
const afterApplicationIsLoaded = runMany(afterApplicationIsLoadedInjectionToken);
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
// Stuff happening before application is ready needs to be synchronous because of
|
|
||||||
// https://github.com/electron/electron/issues/21370
|
|
||||||
appPathsRunnablePhase();
|
|
||||||
beforeElectronIsReady();
|
|
||||||
|
|
||||||
return (async () => {
|
|
||||||
await waitForElectronToBeReady();
|
|
||||||
await beforeApplicationIsLoading();
|
|
||||||
await showLoadingRunnablePhase();
|
|
||||||
await onLoadOfApplication();
|
|
||||||
await showInitialWindowRunnablePhase();
|
|
||||||
await afterApplicationIsLoaded();
|
|
||||||
})();
|
|
||||||
};
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
export default startMainApplicationInjectable;
|
|
||||||
@ -5,7 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import userStoreFileNameMigrationInjectable from "../../common/user-store/file-name-migration.injectable";
|
import userStoreFileNameMigrationInjectable from "../../common/user-store/file-name-migration.injectable";
|
||||||
import userStoreInjectable from "../../common/user-store/user-store.injectable";
|
import userStoreInjectable from "../../common/user-store/user-store.injectable";
|
||||||
import { beforeApplicationIsLoadingInjectionToken } from "../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import initDefaultUpdateChannelInjectable from "../vars/default-update-channel/init.injectable";
|
import initDefaultUpdateChannelInjectable from "../vars/default-update-channel/init.injectable";
|
||||||
|
|
||||||
const initUserStoreInjectable = getInjectable({
|
const initUserStoreInjectable = getInjectable({
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import syncThemeFromOperatingSystemInjectable from "../../electron-app/features/sync-theme-from-operating-system.injectable";
|
import syncThemeFromOperatingSystemInjectable from "../../electron-app/features/sync-theme-from-operating-system.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const startSyncingThemeFromOperatingSystemInjectable = getInjectable({
|
const startSyncingThemeFromOperatingSystemInjectable = getInjectable({
|
||||||
id: "start-syncing-theme-from-operating-system",
|
id: "start-syncing-theme-from-operating-system",
|
||||||
|
|||||||
@ -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 { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import electronTrayInjectable from "./electron-tray.injectable";
|
import electronTrayInjectable from "./electron-tray.injectable";
|
||||||
|
|
||||||
const startTrayInjectable = getInjectable({
|
const startTrayInjectable = getInjectable({
|
||||||
|
|||||||
@ -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 { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import startTrayInjectable from "../electron-tray/start-tray.injectable";
|
import startTrayInjectable from "../electron-tray/start-tray.injectable";
|
||||||
import reactiveTrayMenuIconInjectable from "./reactive.injectable";
|
import reactiveTrayMenuIconInjectable from "./reactive.injectable";
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import reactiveTrayMenuItemsInjectable from "./reactive-tray-menu-items.injectable";
|
import reactiveTrayMenuItemsInjectable from "./reactive-tray-menu-items.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import startTrayInjectable from "../electron-tray/start-tray.injectable";
|
import startTrayInjectable from "../electron-tray/start-tray.injectable";
|
||||||
|
|
||||||
const startReactiveTrayMenuItemsInjectable = getInjectable({
|
const startReactiveTrayMenuItemsInjectable = getInjectable({
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import { reaction } from "mobx";
|
import { reaction } from "mobx";
|
||||||
import userStoreInjectable from "../../common/user-store/user-store.injectable";
|
import userStoreInjectable from "../../common/user-store/user-store.injectable";
|
||||||
import setLoginItemSettingsInjectable from "../electron-app/features/set-login-item-settings.injectable";
|
import setLoginItemSettingsInjectable from "../electron-app/features/set-login-item-settings.injectable";
|
||||||
import { onLoadOfApplicationInjectionToken } from "../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
|
|
||||||
const setupSyncOpenAtLoginWithOsInjectable = getInjectable({
|
const setupSyncOpenAtLoginWithOsInjectable = getInjectable({
|
||||||
id: "setup-sync-open-at-login-with-os",
|
id: "setup-sync-open-at-login-with-os",
|
||||||
|
|||||||
@ -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 { onLoadOfApplicationInjectionToken } from "../../../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "@k8slens/application";
|
||||||
import listeningOnMessageChannelsInjectable from "../../../../common/utils/channel/listening-on-message-channels.injectable";
|
import listeningOnMessageChannelsInjectable from "../../../../common/utils/channel/listening-on-message-channels.injectable";
|
||||||
import listeningOnRequestChannelsInjectable from "./listening-on-request-channels.injectable";
|
import listeningOnRequestChannelsInjectable from "./listening-on-request-channels.injectable";
|
||||||
|
|
||||||
|
|||||||
@ -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 { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import buildVersionInjectable from "./build-version.injectable";
|
import buildVersionInjectable from "./build-version.injectable";
|
||||||
|
|
||||||
const initializeBuildVersionInjectable = getInjectable({
|
const initializeBuildVersionInjectable = getInjectable({
|
||||||
|
|||||||
@ -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 { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import initReleaseChannelInjectable from "../release-channel/init.injectable";
|
import initReleaseChannelInjectable from "../release-channel/init.injectable";
|
||||||
import defaultUpdateChannelInjectable from "../../../features/application-update/common/selected-update-channel/default-update-channel.injectable";
|
import defaultUpdateChannelInjectable from "../../../features/application-update/common/selected-update-channel/default-update-channel.injectable";
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import releaseChannelInjectable from "../../../common/vars/release-channel.injectable";
|
import releaseChannelInjectable from "../../../common/vars/release-channel.injectable";
|
||||||
import { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import initSemanticBuildVersionInjectable from "../semantic-build-version/init.injectable";
|
import initSemanticBuildVersionInjectable from "../semantic-build-version/init.injectable";
|
||||||
|
|
||||||
const initReleaseChannelInjectable = getInjectable({
|
const initReleaseChannelInjectable = getInjectable({
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import buildSemanticVersionInjectable from "../../../common/vars/build-semantic-version.injectable";
|
import buildSemanticVersionInjectable from "../../../common/vars/build-semantic-version.injectable";
|
||||||
import { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
import { beforeApplicationIsLoadingInjectionToken } from "@k8slens/application";
|
||||||
import initializeBuildVersionInjectable from "../build-version/init.injectable";
|
import initializeBuildVersionInjectable from "../build-version/init.injectable";
|
||||||
|
|
||||||
const initSemanticBuildVersionInjectable = getInjectable({
|
const initSemanticBuildVersionInjectable = getInjectable({
|
||||||
|
|||||||
@ -0,0 +1,10 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import { getGlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
|
import bootstrapInjectable from "./bootstrap.injectable";
|
||||||
|
|
||||||
|
export default getGlobalOverride(bootstrapInjectable, () => ({
|
||||||
|
run: () => {},
|
||||||
|
}));
|
||||||
28
packages/core/src/renderer/bootstrap.injectable.ts
Normal file
28
packages/core/src/renderer/bootstrap.injectable.ts
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/**
|
||||||
|
* 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 {
|
||||||
|
afterApplicationIsLoadedInjectionToken,
|
||||||
|
} from "@k8slens/application";
|
||||||
|
import { bootstrap } from "./bootstrap";
|
||||||
|
import startFrameInjectable from "./start-frame/start-frame.injectable";
|
||||||
|
|
||||||
|
const bootstrapInjectable = getInjectable({
|
||||||
|
id: "bootstrap",
|
||||||
|
|
||||||
|
instantiate: (di) => ({
|
||||||
|
run: async () => {
|
||||||
|
await bootstrap(di);
|
||||||
|
},
|
||||||
|
|
||||||
|
runAfter: di.inject(startFrameInjectable),
|
||||||
|
}),
|
||||||
|
|
||||||
|
causesSideEffects: true,
|
||||||
|
|
||||||
|
injectionToken: afterApplicationIsLoadedInjectionToken,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default bootstrapInjectable;
|
||||||
@ -9,7 +9,9 @@ import React from "react";
|
|||||||
import { render, unmountComponentAtNode } from "react-dom";
|
import { render, unmountComponentAtNode } from "react-dom";
|
||||||
import { DefaultProps } from "./mui-base-theme";
|
import { DefaultProps } from "./mui-base-theme";
|
||||||
import { DiContextProvider } from "@ogre-tools/injectable-react";
|
import { DiContextProvider } from "@ogre-tools/injectable-react";
|
||||||
import type { DiContainer } from "@ogre-tools/injectable";
|
import type {
|
||||||
|
DiContainerForInjection,
|
||||||
|
} from "@ogre-tools/injectable";
|
||||||
import extensionLoaderInjectable from "../extensions/extension-loader/extension-loader.injectable";
|
import extensionLoaderInjectable from "../extensions/extension-loader/extension-loader.injectable";
|
||||||
import extensionDiscoveryInjectable from "../extensions/extension-discovery/extension-discovery.injectable";
|
import extensionDiscoveryInjectable from "../extensions/extension-discovery/extension-discovery.injectable";
|
||||||
import extensionInstallationStateStoreInjectable from "../extensions/extension-installation-state-store/extension-installation-state-store.injectable";
|
import extensionInstallationStateStoreInjectable from "../extensions/extension-installation-state-store/extension-installation-state-store.injectable";
|
||||||
@ -18,13 +20,8 @@ import initClusterFrameInjectable from "./frames/cluster-frame/init-cluster-fram
|
|||||||
import { Router } from "react-router";
|
import { Router } from "react-router";
|
||||||
import historyInjectable from "./navigation/history.injectable";
|
import historyInjectable from "./navigation/history.injectable";
|
||||||
import assert from "assert";
|
import assert from "assert";
|
||||||
import startFrameInjectable from "./start-frame/start-frame.injectable";
|
|
||||||
|
|
||||||
export async function bootstrap(di: DiContainer) {
|
|
||||||
const startFrame = di.inject(startFrameInjectable);
|
|
||||||
|
|
||||||
await startFrame();
|
|
||||||
|
|
||||||
|
export async function bootstrap(di: DiContainerForInjection) {
|
||||||
const rootElem = document.getElementById("app");
|
const rootElem = document.getElementById("app");
|
||||||
|
|
||||||
assert(rootElem, "#app MUST exist");
|
assert(rootElem, "#app MUST exist");
|
||||||
|
|||||||
@ -23,8 +23,6 @@ import type { NavigateToHelmCharts } from "../../../common/front-end-routing/rou
|
|||||||
import navigateToHelmChartsInjectable from "../../../common/front-end-routing/routes/cluster/helm/charts/navigate-to-helm-charts.injectable";
|
import navigateToHelmChartsInjectable from "../../../common/front-end-routing/routes/cluster/helm/charts/navigate-to-helm-charts.injectable";
|
||||||
import hostedClusterInjectable from "../../cluster-frame-context/hosted-cluster.injectable";
|
import hostedClusterInjectable from "../../cluster-frame-context/hosted-cluster.injectable";
|
||||||
import type { Cluster } from "../../../common/cluster/cluster";
|
import type { Cluster } from "../../../common/cluster/cluster";
|
||||||
import startMainApplicationInjectable from "../../../main/start-main-application/start-main-application.injectable";
|
|
||||||
import startFrameInjectable from "../../start-frame/start-frame.injectable";
|
|
||||||
import type { NamespaceStore } from "../+namespaces/store";
|
import type { NamespaceStore } from "../+namespaces/store";
|
||||||
import historyInjectable from "../../navigation/history.injectable";
|
import historyInjectable from "../../navigation/history.injectable";
|
||||||
import type { MinimalTrayMenuItem } from "../../../main/tray/electron-tray/electron-tray.injectable";
|
import type { MinimalTrayMenuItem } from "../../../main/tray/electron-tray/electron-tray.injectable";
|
||||||
@ -69,6 +67,16 @@ import fsInjectable from "../../../common/fs/fs.injectable";
|
|||||||
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
|
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
|
||||||
import homeDirectoryPathInjectable from "../../../common/os/home-directory-path.injectable";
|
import homeDirectoryPathInjectable from "../../../common/os/home-directory-path.injectable";
|
||||||
import { testUsingFakeTime } from "../../../common/test-utils/use-fake-time";
|
import { testUsingFakeTime } from "../../../common/test-utils/use-fake-time";
|
||||||
|
import { registerFeature } from "@k8slens/feature-core";
|
||||||
|
import {
|
||||||
|
applicationFeatureForElectronMain,
|
||||||
|
testUtils as applicationForElectronTestUtils,
|
||||||
|
} from "@k8slens/application-for-electron-main";
|
||||||
|
import {
|
||||||
|
applicationFeature,
|
||||||
|
startApplicationInjectionToken,
|
||||||
|
} from "@k8slens/application";
|
||||||
|
|
||||||
|
|
||||||
type Callback = (di: DiContainer) => void | Promise<void>;
|
type Callback = (di: DiContainer) => void | Promise<void>;
|
||||||
|
|
||||||
@ -165,9 +173,17 @@ export const getApplicationBuilder = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
|
registerFeature(
|
||||||
|
mainDi,
|
||||||
|
applicationFeature,
|
||||||
|
applicationFeatureForElectronMain,
|
||||||
|
);
|
||||||
|
|
||||||
mainDi.register(mainExtensionsStateInjectable);
|
mainDi.register(mainExtensionsStateInjectable);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
applicationForElectronTestUtils.overrideSideEffectsWithFakes(mainDi);
|
||||||
|
|
||||||
testUsingFakeTime();
|
testUsingFakeTime();
|
||||||
|
|
||||||
const { overrideForWindow, sendToWindow } = overrideChannels(mainDi);
|
const { overrideForWindow, sendToWindow } = overrideChannels(mainDi);
|
||||||
@ -226,6 +242,11 @@ export const getApplicationBuilder = () => {
|
|||||||
overrideFsWithFakes(windowDi);
|
overrideFsWithFakes(windowDi);
|
||||||
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
|
registerFeature(
|
||||||
|
windowDi,
|
||||||
|
applicationFeature,
|
||||||
|
);
|
||||||
|
|
||||||
windowDi.register(rendererExtensionsStateInjectable);
|
windowDi.register(rendererExtensionsStateInjectable);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -253,9 +274,9 @@ export const getApplicationBuilder = () => {
|
|||||||
await callback(windowDi);
|
await callback(windowDi);
|
||||||
}
|
}
|
||||||
|
|
||||||
const startFrame = windowDi.inject(startFrameInjectable);
|
const startApplication = windowDi.inject(startApplicationInjectionToken);
|
||||||
|
|
||||||
await startFrame();
|
await startApplication();
|
||||||
|
|
||||||
for (const callback of afterWindowStartCallbacks) {
|
for (const callback of afterWindowStartCallbacks) {
|
||||||
await callback(windowDi);
|
await callback(windowDi);
|
||||||
@ -289,9 +310,9 @@ export const getApplicationBuilder = () => {
|
|||||||
const namespaces = observable.set<string>();
|
const namespaces = observable.set<string>();
|
||||||
const namespaceItems = observable.array<Namespace>();
|
const namespaceItems = observable.array<Namespace>();
|
||||||
const selectedNamespaces = observable.set<string>();
|
const selectedNamespaces = observable.set<string>();
|
||||||
const startMainApplication = mainDi.inject(startMainApplicationInjectable);
|
const startApplication = mainDi.inject(startApplicationInjectionToken);
|
||||||
|
|
||||||
const startApplication = async ({ shouldStartHidden }: { shouldStartHidden: boolean }) => {
|
const startApp = async ({ shouldStartHidden }: { shouldStartHidden: boolean }) => {
|
||||||
mainDi.inject(lensProxyPortInjectable).set(42);
|
mainDi.inject(lensProxyPortInjectable).set(42);
|
||||||
|
|
||||||
for (const callback of beforeApplicationStartCallbacks) {
|
for (const callback of beforeApplicationStartCallbacks) {
|
||||||
@ -299,7 +320,7 @@ export const getApplicationBuilder = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mainDi.override(shouldStartHiddenInjectable, () => shouldStartHidden);
|
mainDi.override(shouldStartHiddenInjectable, () => shouldStartHidden);
|
||||||
await startMainApplication();
|
await startApplication();
|
||||||
|
|
||||||
for (const callback of afterApplicationStartCallbacks) {
|
for (const callback of afterApplicationStartCallbacks) {
|
||||||
await callback(mainDi);
|
await callback(mainDi);
|
||||||
@ -671,11 +692,11 @@ export const getApplicationBuilder = () => {
|
|||||||
},
|
},
|
||||||
|
|
||||||
startHidden: async () => {
|
startHidden: async () => {
|
||||||
await startApplication({ shouldStartHidden: true });
|
await startApp({ shouldStartHidden: true });
|
||||||
},
|
},
|
||||||
|
|
||||||
async render() {
|
async render() {
|
||||||
await startApplication({ shouldStartHidden: false });
|
await startApp({ shouldStartHidden: false });
|
||||||
|
|
||||||
return builder
|
return builder
|
||||||
.applicationWindow
|
.applicationWindow
|
||||||
|
|||||||
@ -1,33 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
import "./components/app.scss";
|
|
||||||
|
|
||||||
import { bootstrap } from "./bootstrap";
|
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
|
||||||
import nodeEnvInjectionToken from "../common/vars/node-env-injection-token";
|
|
||||||
import { runInAction } from "mobx";
|
|
||||||
import { registerInjectables } from "./register-injectables";
|
|
||||||
import type { CreateApplication } from "../common/create-app";
|
|
||||||
import { getDi } from "./getDi";
|
|
||||||
|
|
||||||
export const createApplication: CreateApplication = (config) => {
|
|
||||||
const { mode } = config;
|
|
||||||
const di = getDi();
|
|
||||||
|
|
||||||
runInAction(() => {
|
|
||||||
di.register(getInjectable({
|
|
||||||
id: "node-env",
|
|
||||||
instantiate: () => mode,
|
|
||||||
injectionToken: nodeEnvInjectionToken,
|
|
||||||
}));
|
|
||||||
|
|
||||||
registerInjectables(di);
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
start: () => bootstrap(di),
|
|
||||||
di,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { createContainer } from "@ogre-tools/injectable";
|
|
||||||
import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
|
|
||||||
import { registerInjectableReact } from "@ogre-tools/injectable-react";
|
|
||||||
import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
|
||||||
|
|
||||||
export const getDi = () => {
|
|
||||||
const environment = "renderer";
|
|
||||||
const di = createContainer(environment);
|
|
||||||
|
|
||||||
registerMobX(di);
|
|
||||||
registerInjectableReact(di);
|
|
||||||
setLegacyGlobalDiForExtensionApi(di, environment);
|
|
||||||
|
|
||||||
return di;
|
|
||||||
};
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { noop, chunk } from "lodash/fp";
|
import { noop, chunk } from "lodash/fp";
|
||||||
import { isInjectable } from "@ogre-tools/injectable";
|
import { createContainer, isInjectable } from "@ogre-tools/injectable";
|
||||||
import requestFromChannelInjectable from "./utils/channel/request-from-channel.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";
|
||||||
@ -15,14 +15,26 @@ import startTopbarStateSyncInjectable from "./components/layout/top-bar/start-st
|
|||||||
import watchHistoryStateInjectable from "./remote-helpers/watch-history-state.injectable";
|
import watchHistoryStateInjectable from "./remote-helpers/watch-history-state.injectable";
|
||||||
import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injectable";
|
import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injectable";
|
||||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
import { getDi } from "./getDi";
|
|
||||||
|
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 { registerInjectableReact } from "@ogre-tools/injectable-react";
|
||||||
|
|
||||||
export const getDiForUnitTesting = (
|
export const getDiForUnitTesting = (
|
||||||
opts: { doGeneralOverrides?: boolean } = {},
|
opts: { doGeneralOverrides?: boolean } = {},
|
||||||
) => {
|
) => {
|
||||||
const { doGeneralOverrides = false } = opts;
|
const { doGeneralOverrides = false } = opts;
|
||||||
|
|
||||||
const di = getDi();
|
const environment = "renderer";
|
||||||
|
const di = createContainer(environment);
|
||||||
|
|
||||||
|
registerMobX(di);
|
||||||
|
registerInjectableReact(di);
|
||||||
|
setLegacyGlobalDiForExtensionApi(di, environment);
|
||||||
|
|
||||||
di.preventSideEffects();
|
di.preventSideEffects();
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,12 @@ import React from "react";
|
|||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
|
|
||||||
// @experimental
|
// @experimental
|
||||||
|
export type {
|
||||||
|
Environments,
|
||||||
|
} from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
||||||
|
|
||||||
|
export { nodeEnvInjectionToken } from "../common/vars/node-env-injection-token";
|
||||||
|
export { registerLensCore } from "./register-lens-core";
|
||||||
export { React, ReactDOM };
|
export { React, ReactDOM };
|
||||||
export * as Mobx from "mobx";
|
export * as Mobx from "mobx";
|
||||||
export * as MobxReact from "mobx-react";
|
export * as MobxReact from "mobx-react";
|
||||||
@ -14,5 +20,3 @@ export * as ReactRouter from "react-router";
|
|||||||
export * as ReactRouterDom from "react-router-dom";
|
export * as ReactRouterDom from "react-router-dom";
|
||||||
export * as rendererExtensionApi from "../extensions/renderer-api";
|
export * as rendererExtensionApi from "../extensions/renderer-api";
|
||||||
export * as commonExtensionApi from "../extensions/common-api";
|
export * as commonExtensionApi from "../extensions/common-api";
|
||||||
export { createApplication } from "./create-app";
|
|
||||||
export type { CreateApplication, Application, ApplicationConfig } from "../common/create-app";
|
|
||||||
|
|||||||
@ -2,19 +2,28 @@
|
|||||||
* 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 { DiContainer } from "@ogre-tools/injectable";
|
import type { DiContainer } from "@ogre-tools/injectable";
|
||||||
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
||||||
import { runInAction } from "mobx";
|
import { runInAction } from "mobx";
|
||||||
|
import type {
|
||||||
|
Environments,
|
||||||
|
} 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";
|
||||||
|
|
||||||
|
export function registerLensCore(di: DiContainer, environment: Environments) {
|
||||||
|
setLegacyGlobalDiForExtensionApi(di, environment);
|
||||||
|
|
||||||
export function registerInjectables(di: DiContainer) {
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
autoRegister({
|
autoRegister({
|
||||||
di,
|
di,
|
||||||
targetModule: module,
|
targetModule: module,
|
||||||
getRequireContexts: () => [
|
getRequireContexts: () => [
|
||||||
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
|
||||||
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
|
require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
require.context("../features", true, CONTEXT_MATCHER_FOR_FEATURES),
|
require.context("../features", true, CONTEXT_MATCHER_FOR_FEATURES),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
@ -6,11 +6,13 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import { runManyFor } from "../../common/runnable/run-many-for";
|
import { runManyFor } from "../../common/runnable/run-many-for";
|
||||||
import * as tokens from "../before-frame-starts/tokens";
|
import * as tokens from "../before-frame-starts/tokens";
|
||||||
import currentlyInClusterFrameInjectable from "../routes/currently-in-cluster-frame.injectable";
|
import currentlyInClusterFrameInjectable from "../routes/currently-in-cluster-frame.injectable";
|
||||||
|
import {
|
||||||
|
afterApplicationIsLoadedInjectionToken,
|
||||||
|
} from "@k8slens/application";
|
||||||
|
|
||||||
const startFrameInjectable = getInjectable({
|
const startFrameInjectable = getInjectable({
|
||||||
id: "start-frame",
|
id: "start-frame",
|
||||||
|
|
||||||
// TODO: Consolidate contents of bootstrap.tsx here
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const runMany = runManyFor(di);
|
const runMany = runManyFor(di);
|
||||||
const beforeFrameStartsFirst = runMany(tokens.beforeFrameStartsFirstInjectionToken);
|
const beforeFrameStartsFirst = runMany(tokens.beforeFrameStartsFirstInjectionToken);
|
||||||
@ -21,7 +23,8 @@ const startFrameInjectable = getInjectable({
|
|||||||
const beforeClusterFrameStartsSecond = runMany(tokens.beforeClusterFrameStartsSecondInjectionToken);
|
const beforeClusterFrameStartsSecond = runMany(tokens.beforeClusterFrameStartsSecondInjectionToken);
|
||||||
const currentlyInClusterFrame = di.inject(currentlyInClusterFrameInjectable);
|
const currentlyInClusterFrame = di.inject(currentlyInClusterFrameInjectable);
|
||||||
|
|
||||||
return async () => {
|
return {
|
||||||
|
run: async () => {
|
||||||
await beforeFrameStartsFirst();
|
await beforeFrameStartsFirst();
|
||||||
|
|
||||||
if (currentlyInClusterFrame) {
|
if (currentlyInClusterFrame) {
|
||||||
@ -37,8 +40,11 @@ const startFrameInjectable = getInjectable({
|
|||||||
} else {
|
} else {
|
||||||
await beforeMainFrameStartsSecond();
|
await beforeMainFrameStartsSecond();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
injectionToken: afterApplicationIsLoadedInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default startFrameInjectable;
|
export default startFrameInjectable;
|
||||||
|
|||||||
@ -197,6 +197,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@k8slens/application": "^6.5.0-alpha.0",
|
"@k8slens/application": "^6.5.0-alpha.0",
|
||||||
"@k8slens/feature-core": "^6.5.0-alpha.0",
|
"@k8slens/feature-core": "^6.5.0-alpha.0",
|
||||||
|
"@k8slens/application-for-electron-main": "^6.5.0-alpha.0",
|
||||||
"@k8slens/core": "^6.5.0-alpha.0",
|
"@k8slens/core": "^6.5.0-alpha.0",
|
||||||
"@k8slens/ensure-binaries": "^6.5.0-alpha.0",
|
"@k8slens/ensure-binaries": "^6.5.0-alpha.0",
|
||||||
"@k8slens/generate-tray-icons": "^6.5.0-alpha.0",
|
"@k8slens/generate-tray-icons": "^6.5.0-alpha.0",
|
||||||
|
|||||||
@ -1,15 +1,30 @@
|
|||||||
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
||||||
import { runInAction } from "mobx";
|
import { runInAction } from "mobx";
|
||||||
import { createApplication, mainExtensionApi as Main, commonExtensionApi as Common } from "@k8slens/core/main";
|
import {
|
||||||
|
mainExtensionApi as Main,
|
||||||
|
commonExtensionApi as Common,
|
||||||
|
registerLensCore,
|
||||||
|
} from "@k8slens/core/main";
|
||||||
|
import { createContainer } from "@ogre-tools/injectable";
|
||||||
|
import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
|
||||||
|
import { registerFeature } from "@k8slens/feature-core";
|
||||||
|
import { applicationFeature, startApplicationInjectionToken } from '@k8slens/application'
|
||||||
|
import { applicationFeatureForElectronMain } from '@k8slens/application-for-electron-main'
|
||||||
|
|
||||||
const app = createApplication({
|
const environment = "main";
|
||||||
mode: process.env.NODE_ENV || "development"
|
|
||||||
});
|
const di = createContainer(environment);
|
||||||
|
|
||||||
|
registerMobX(di);
|
||||||
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
|
registerLensCore(di, environment);
|
||||||
|
|
||||||
|
registerFeature(di, applicationFeature, applicationFeatureForElectronMain);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
autoRegister({
|
autoRegister({
|
||||||
di: app.di,
|
di,
|
||||||
targetModule: module,
|
targetModule: module,
|
||||||
getRequireContexts: () => [
|
getRequireContexts: () => [
|
||||||
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
@ -22,7 +37,9 @@ runInAction(() => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.start().catch((error) => {
|
const startApplication = di.inject(startApplicationInjectionToken);
|
||||||
|
|
||||||
|
startApplication().catch((error) => {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
})
|
})
|
||||||
|
|||||||
8
packages/open-lens/src/main/node-env.injectable.ts
Normal file
8
packages/open-lens/src/main/node-env.injectable.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import { nodeEnvInjectionToken } from "@k8slens/core/main";
|
||||||
|
|
||||||
|
export const nodeEnvInjectable = getInjectable({
|
||||||
|
id: "node-env",
|
||||||
|
instantiate: () => process.env.NODE_ENV || "development",
|
||||||
|
injectionToken: nodeEnvInjectionToken,
|
||||||
|
});
|
||||||
@ -1,15 +1,32 @@
|
|||||||
import "@k8slens/core/styles";
|
import "@k8slens/core/styles";
|
||||||
import { runInAction } from "mobx";
|
import { runInAction } from "mobx";
|
||||||
import { createApplication, rendererExtensionApi as Renderer, commonExtensionApi as Common } from "@k8slens/core/renderer";
|
import {
|
||||||
|
rendererExtensionApi as Renderer,
|
||||||
|
commonExtensionApi as Common,
|
||||||
|
registerLensCore,
|
||||||
|
} from "@k8slens/core/renderer";
|
||||||
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
|
||||||
|
import { registerFeature } from "@k8slens/feature-core";
|
||||||
|
import {
|
||||||
|
applicationFeature,
|
||||||
|
startApplicationInjectionToken
|
||||||
|
} from "@k8slens/application";
|
||||||
|
import { createContainer } from "@ogre-tools/injectable";
|
||||||
|
import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
|
||||||
|
import { registerInjectableReact } from "@ogre-tools/injectable-react";
|
||||||
|
|
||||||
const app = createApplication({
|
const environment = "main";
|
||||||
mode: process.env.NODE_ENV || "development"
|
|
||||||
});
|
const di = createContainer(environment);
|
||||||
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
|
registerMobX(di);
|
||||||
|
registerInjectableReact(di);
|
||||||
|
registerLensCore(di, environment);
|
||||||
|
registerFeature(di, applicationFeature);
|
||||||
|
|
||||||
autoRegister({
|
autoRegister({
|
||||||
di: app.di,
|
di,
|
||||||
targetModule: module,
|
targetModule: module,
|
||||||
getRequireContexts: () => [
|
getRequireContexts: () => [
|
||||||
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
|
||||||
@ -18,7 +35,9 @@ runInAction(() => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.start();
|
const startApplication = di.inject(startApplicationInjectionToken);
|
||||||
|
|
||||||
|
startApplication();
|
||||||
|
|
||||||
export {
|
export {
|
||||||
React,
|
React,
|
||||||
|
|||||||
8
packages/open-lens/src/renderer/node-env.injectable.ts
Normal file
8
packages/open-lens/src/renderer/node-env.injectable.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import { nodeEnvInjectionToken } from "@k8slens/core/renderer";
|
||||||
|
|
||||||
|
export const nodeEnvInjectable = getInjectable({
|
||||||
|
id: "node-env",
|
||||||
|
instantiate: () => process.env.NODE_ENV || "development",
|
||||||
|
injectionToken: nodeEnvInjectionToken,
|
||||||
|
});
|
||||||
@ -14,7 +14,7 @@
|
|||||||
import CopyPlugin from "copy-webpack-plugin";
|
import CopyPlugin from "copy-webpack-plugin";
|
||||||
import type { WebpackPluginInstance } from "webpack";
|
import type { WebpackPluginInstance } from "webpack";
|
||||||
import { DefinePlugin } from "webpack";
|
import { DefinePlugin } from "webpack";
|
||||||
import { assetsFolderName, isDevelopment, rendererDir, buildDir, htmlTemplate, publicPath, sassCommonVars } from "./vars";
|
import { assetsFolderName, isDevelopment, rendererDir, buildDir, htmlTemplate, publicPath } from "./vars";
|
||||||
import { platform } from "process";
|
import { platform } from "process";
|
||||||
|
|
||||||
const renderer: webpack.Configuration = {
|
const renderer: webpack.Configuration = {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user