mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
fix bug where LensExtension dependencies are not set
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
076ba7709e
commit
3a3572f9f8
@ -5,7 +5,9 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { createExtensionInstanceInjectionToken } from "../../extensions/extension-loader/create-extension-instance.token";
|
import { createExtensionInstanceInjectionToken } from "../../extensions/extension-loader/create-extension-instance.token";
|
||||||
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 { 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 catalogEntityRegistryInjectable from "../catalog/entity-registry.injectable";
|
import catalogEntityRegistryInjectable from "../catalog/entity-registry.injectable";
|
||||||
|
|
||||||
const createExtensionInstanceInjectable = getInjectable({
|
const createExtensionInstanceInjectable = getInjectable({
|
||||||
@ -17,9 +19,9 @@ const createExtensionInstanceInjectable = getInjectable({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (ExtensionClass, extension) => {
|
return (ExtensionClass, extension) => {
|
||||||
const instance = new ExtensionClass(extension);
|
const instance = new ExtensionClass(extension) as LensMainExtension;
|
||||||
|
|
||||||
(instance as unknown as { dependencies: LensMainExtensionDependencies }).dependencies = deps;
|
(instance as { [lensExtensionDependencies]: LensMainExtensionDependencies })[lensExtensionDependencies] = deps;
|
||||||
|
|
||||||
return instance;
|
return instance;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,10 +3,13 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import type { Mutable } from "type-fest";
|
||||||
import catalogCategoryRegistryInjectable from "../../common/catalog/category-registry.injectable";
|
import catalogCategoryRegistryInjectable from "../../common/catalog/category-registry.injectable";
|
||||||
import { createExtensionInstanceInjectionToken } from "../../extensions/extension-loader/create-extension-instance.token";
|
import { createExtensionInstanceInjectionToken } from "../../extensions/extension-loader/create-extension-instance.token";
|
||||||
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 { lensExtensionDependencies } from "../../extensions/lens-extension";
|
||||||
import type { LensRendererExtensionDependencies } from "../../extensions/lens-extension-set-dependencies";
|
import type { LensRendererExtensionDependencies } from "../../extensions/lens-extension-set-dependencies";
|
||||||
|
import type { LensRendererExtension } from "../../extensions/lens-renderer-extension";
|
||||||
import catalogEntityRegistryInjectable from "../api/catalog/entity/registry.injectable";
|
import catalogEntityRegistryInjectable from "../api/catalog/entity/registry.injectable";
|
||||||
import getExtensionPageParametersInjectable from "../routes/get-extension-page-parameters.injectable";
|
import getExtensionPageParametersInjectable from "../routes/get-extension-page-parameters.injectable";
|
||||||
import navigateToRouteInjectable from "../routes/navigate-to-route.injectable";
|
import navigateToRouteInjectable from "../routes/navigate-to-route.injectable";
|
||||||
@ -25,9 +28,9 @@ const createExtensionInstanceInjectable = getInjectable({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (ExtensionClass, extension) => {
|
return (ExtensionClass, extension) => {
|
||||||
const instance = new ExtensionClass(extension);
|
const instance = new ExtensionClass(extension) as LensRendererExtension;
|
||||||
|
|
||||||
(instance as unknown as { dependencies: LensRendererExtensionDependencies }).dependencies = deps;
|
(instance as Mutable<LensRendererExtension, typeof lensExtensionDependencies>)[lensExtensionDependencies] = deps;
|
||||||
|
|
||||||
return instance;
|
return instance;
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user