mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Introduce clearer boundry between extensions (#7164)
- Bundled extensions are always enabled, and are always compatible - Have bundled extensions be loaded asyncronously to support typescript dynamic import (which is typed) as opposed to require Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
1 parent
351f9d492f
commit
058494bc73
29 files changed
+440
-550
No files matched your search
+1
-1
@@ -376,7 +376,7 @@ exports[`extensions - navigation using application menu when navigating to exten
|
||||
<p>
|
||||
Add new features via Lens Extensions. Check out the
|
||||
<a
|
||||
href="https://docs.k8slens.dev/extensions/"
|
||||
href="https://docs.k8slens.dev/extensions/lens-extensions"
|
||||
rel="noreferrer"
|
||||
target="_blank"
|
||||
>
|
||||
|
||||
@@ -5,19 +5,14 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import enabledExtensionsStateInjectable from "./state.injectable";
|
||||
|
||||
export interface IsEnabledExtensionDescriptor {
|
||||
readonly id: string;
|
||||
readonly isBundled: boolean;
|
||||
}
|
||||
|
||||
export type IsExtensionEnabled = (desc: IsEnabledExtensionDescriptor) => boolean;
|
||||
export type IsExtensionEnabled = (id: string) => boolean;
|
||||
|
||||
const isExtensionEnabledInjectable = getInjectable({
|
||||
id: "is-extension-enabled",
|
||||
instantiate: (di): IsExtensionEnabled => {
|
||||
const state = di.inject(enabledExtensionsStateInjectable);
|
||||
|
||||
return ({ id, isBundled }) => isBundled || (state.get(id)?.enabled ?? false);
|
||||
return (id) => (state.get(id)?.enabled ?? false);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user