mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Switch to using dependency instead of legacy-di
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
8cdb0e0bcb
commit
a9668ad199
@ -11,6 +11,7 @@ import type { CatalogEntityRegistry as MainCatalogEntityRegistry } from "../main
|
|||||||
import type { CatalogEntityRegistry as RendererCatalogEntityRegistry } from "../renderer/api/catalog/entity/registry";
|
import type { CatalogEntityRegistry as RendererCatalogEntityRegistry } from "../renderer/api/catalog/entity/registry";
|
||||||
import type { GetExtensionPageParameters } from "../renderer/routes/get-extension-page-parameters.injectable";
|
import type { GetExtensionPageParameters } from "../renderer/routes/get-extension-page-parameters.injectable";
|
||||||
import type { FileSystemProvisionerStore } from "./extension-loader/file-system-provisioner-store/file-system-provisioner-store";
|
import type { FileSystemProvisionerStore } from "./extension-loader/file-system-provisioner-store/file-system-provisioner-store";
|
||||||
|
import type { NavigateForExtension } from "../main/start-main-application/lens-window/navigate-for-extension.injectable";
|
||||||
|
|
||||||
export interface LensExtensionDependencies {
|
export interface LensExtensionDependencies {
|
||||||
readonly fileSystemProvisionerStore: FileSystemProvisionerStore;
|
readonly fileSystemProvisionerStore: FileSystemProvisionerStore;
|
||||||
@ -18,6 +19,7 @@ export interface LensExtensionDependencies {
|
|||||||
|
|
||||||
export interface LensMainExtensionDependencies extends LensExtensionDependencies {
|
export interface LensMainExtensionDependencies extends LensExtensionDependencies {
|
||||||
readonly entityRegistry: MainCatalogEntityRegistry;
|
readonly entityRegistry: MainCatalogEntityRegistry;
|
||||||
|
readonly navigate: NavigateForExtension;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface LensRendererExtensionDependencies extends LensExtensionDependencies {
|
export interface LensRendererExtensionDependencies extends LensExtensionDependencies {
|
||||||
|
|||||||
@ -10,8 +10,6 @@ import type { MenuRegistration } from "../main/menu/menu-registration";
|
|||||||
import type { TrayMenuRegistration } from "../main/tray/tray-menu-registration";
|
import type { TrayMenuRegistration } from "../main/tray/tray-menu-registration";
|
||||||
import type { ShellEnvModifier } from "../main/shell-session/shell-env-modifier/shell-env-modifier-registration";
|
import type { ShellEnvModifier } from "../main/shell-session/shell-env-modifier/shell-env-modifier-registration";
|
||||||
import type { LensMainExtensionDependencies } from "./lens-extension-set-dependencies";
|
import type { LensMainExtensionDependencies } from "./lens-extension-set-dependencies";
|
||||||
import { Environments, getEnvironmentSpecificLegacyGlobalDiForExtensionApi } from "./as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
|
||||||
import navigateForExtensionInjectable from "../main/start-main-application/lens-window/navigate-for-extension.injectable";
|
|
||||||
|
|
||||||
export class LensMainExtension extends LensExtension<LensMainExtensionDependencies> {
|
export class LensMainExtension extends LensExtension<LensMainExtensionDependencies> {
|
||||||
appMenus: MenuRegistration[] = [];
|
appMenus: MenuRegistration[] = [];
|
||||||
@ -33,11 +31,7 @@ export class LensMainExtension extends LensExtension<LensMainExtensionDependenci
|
|||||||
terminalShellEnvModifier?: ShellEnvModifier;
|
terminalShellEnvModifier?: ShellEnvModifier;
|
||||||
|
|
||||||
async navigate(pageId?: string, params?: Record<string, any>, frameId?: number) {
|
async navigate(pageId?: string, params?: Record<string, any>, frameId?: number) {
|
||||||
const di = getEnvironmentSpecificLegacyGlobalDiForExtensionApi(Environments.main);
|
await this[lensExtensionDependencies].navigate(this.id, pageId, params, frameId);
|
||||||
|
|
||||||
const navigate = di.inject(navigateForExtensionInjectable);
|
|
||||||
|
|
||||||
return navigate(this.id, pageId, params, frameId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
addCatalogSource(id: string, source: IObservableArray<CatalogEntity>) {
|
addCatalogSource(id: string, source: IObservableArray<CatalogEntity>) {
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import { lensExtensionDependencies } from "../../extensions/lens-extension";
|
|||||||
import type { LensMainExtensionDependencies } from "../../extensions/lens-extension-set-dependencies";
|
import type { LensMainExtensionDependencies } from "../../extensions/lens-extension-set-dependencies";
|
||||||
import type { LensMainExtension } from "../../extensions/lens-main-extension";
|
import type { LensMainExtension } from "../../extensions/lens-main-extension";
|
||||||
import catalogEntityRegistryInjectable from "../catalog/entity-registry.injectable";
|
import catalogEntityRegistryInjectable from "../catalog/entity-registry.injectable";
|
||||||
|
import navigateForExtensionInjectable from "../start-main-application/lens-window/navigate-for-extension.injectable";
|
||||||
|
|
||||||
const createExtensionInstanceInjectable = getInjectable({
|
const createExtensionInstanceInjectable = getInjectable({
|
||||||
id: "create-extension-instance",
|
id: "create-extension-instance",
|
||||||
@ -16,6 +17,7 @@ const createExtensionInstanceInjectable = getInjectable({
|
|||||||
const deps: LensMainExtensionDependencies = {
|
const deps: LensMainExtensionDependencies = {
|
||||||
fileSystemProvisionerStore: di.inject(fileSystemProvisionerStoreInjectable),
|
fileSystemProvisionerStore: di.inject(fileSystemProvisionerStoreInjectable),
|
||||||
entityRegistry: di.inject(catalogEntityRegistryInjectable),
|
entityRegistry: di.inject(catalogEntityRegistryInjectable),
|
||||||
|
navigate: di.inject(navigateForExtensionInjectable),
|
||||||
};
|
};
|
||||||
|
|
||||||
return (ExtensionClass, extension) => {
|
return (ExtensionClass, extension) => {
|
||||||
|
|||||||
@ -8,10 +8,17 @@ import clusterFramesInjectable from "../../../common/cluster-frames.injectable";
|
|||||||
import showApplicationWindowInjectable from "./show-application-window.injectable";
|
import showApplicationWindowInjectable from "./show-application-window.injectable";
|
||||||
import applicationWindowInjectable from "./application-window/application-window.injectable";
|
import applicationWindowInjectable from "./application-window/application-window.injectable";
|
||||||
|
|
||||||
|
export type NavigateForExtension = (
|
||||||
|
extId: string,
|
||||||
|
pageId?: string,
|
||||||
|
params?: Record<string, any>,
|
||||||
|
frameId?: number
|
||||||
|
) => Promise<void>;
|
||||||
|
|
||||||
const navigateForExtensionInjectable = getInjectable({
|
const navigateForExtensionInjectable = getInjectable({
|
||||||
id: "navigate-for-extension",
|
id: "navigate-for-extension",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di): NavigateForExtension => {
|
||||||
const applicationWindow = di.inject(applicationWindowInjectable);
|
const applicationWindow = di.inject(applicationWindowInjectable);
|
||||||
const clusterFrames = di.inject(clusterFramesInjectable);
|
const clusterFrames = di.inject(clusterFramesInjectable);
|
||||||
const showApplicationWindow = di.inject(showApplicationWindowInjectable);
|
const showApplicationWindow = di.inject(showApplicationWindowInjectable);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user