minor refactor

This commit is contained in:
Niels Lyngsø
2024-03-02 11:00:08 +01:00
parent e6202ead20
commit a72ec1a14e
2 changed files with 7 additions and 8 deletions

View File

@@ -7,6 +7,7 @@ import type {
} from '@umbraco-cms/backoffice/extension-api';
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { createObservablePart } from '@umbraco-cms/backoffice/observable-api';
export type PermittedControllerType<ControllerType extends { manifest: any }> = ControllerType & {
manifest: Required<Pick<ControllerType, 'manifest'>>;
@@ -62,7 +63,7 @@ export abstract class UmbBaseExtensionsInitializer<
? this.#extensionRegistry.byTypes<ManifestType>(this.#type as string[])
: this.#extensionRegistry.byType<ManifestTypeName, ManifestType>(this.#type as ManifestTypeName);
if (this.#filter) {
source = source.pipe(map((extensions: Array<ManifestType>) => extensions.filter(this.#filter!)));
source = createObservablePart(source, (extensions: Array<ManifestType>) => extensions.filter(this.#filter!));
}
this.observe(source, this.#gotManifests, '_observeManifests') as any;
}
@@ -89,10 +90,6 @@ export abstract class UmbBaseExtensionsInitializer<
return true;
});
// ---------------------------------------------------------------
// May change this into a Extensions Manager Controller???
// ---------------------------------------------------------------
manifests.forEach((manifest) => {
const existing = this._extensions.find((x) => x.alias === manifest.alias);
if (!existing) {

View File

@@ -1,6 +1,6 @@
import { createExtensionElement } from '../functions/create-extension-element.function.js';
import type { UmbExtensionRegistry } from '../registry/extension.registry.js';
import type { ManifestCondition, ManifestWithDynamicConditions } from '../types/index.js';
import type { ManifestCondition, ManifestElement, ManifestWithDynamicConditions } from '../types/index.js';
import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
@@ -18,9 +18,11 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbExtensionElementInitializer<
ManifestType extends ManifestWithDynamicConditions = ManifestWithDynamicConditions,
ControllerType extends UmbExtensionElementInitializer<ManifestType, any> = any,
ExtensionInterface extends ManifestElement = ManifestType extends ManifestElement ? ManifestType : never,
ExtensionElementInterface extends HTMLElement | undefined = ExtensionInterface['ELEMENT_TYPE'],
> extends UmbBaseExtensionInitializer<ManifestType, ControllerType> {
#defaultElement?: string;
#component?: HTMLElement;
#component?: ExtensionElementInterface;
/**
* The component that is created for this extension.
@@ -84,7 +86,7 @@ export class UmbExtensionElementInitializer<
// We are not positive anymore, so we will back out of this creation.
return false;
}
this.#component = newComponent;
this.#component = newComponent as ExtensionElementInterface;
if (this.#component) {
this.#assignProperties();
(this.#component as any).manifest = manifest;