1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/packages/core/src/extensions/extensions.injectable.ts
Sebastian Malton 82bf67cc9e chore: Simplify extension dependency injection
- Has better typing
- Removes use of unnusual unique symbol
- Fix welcome banner tests
    - Update associated snapshots
- Start converting custom column tests to use ApplicationBuilder
- Remove old and unnused RecursiveTreeView
- Introduce new TreeView for use in CatalogMenu to fix tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2023-04-06 09:05:27 -04:00

26 lines
947 B
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { iter } from "@k8slens/utilities";
import { getInjectable } from "@ogre-tools/injectable";
import { computed } from "mobx";
import isExtensionEnabledInjectable from "../features/extensions/enabled/common/is-enabled.injectable";
import extensionInstancesInjectable from "./extension-loader/extension-instances.injectable";
const extensionsInjectable = getInjectable({
id: "extensions",
instantiate: (di) => {
const extensionInstances = di.inject(extensionInstancesInjectable);
const isExtensionEnabled = di.inject(isExtensionEnabledInjectable);
return computed(() => (
iter.chain(extensionInstances.values())
.filter(extension => extension.isBundled || isExtensionEnabled(extension.id))
.toArray()
));
},
});
export default extensionsInjectable;