This commit is contained in:
Niels Lyngsø
2023-03-20 14:37:17 +01:00
parent c9b9431ad3
commit c960a1d4ae

View File

@@ -170,20 +170,24 @@ export class UmbExtensionRegistry {
) as Observable<Array<T>>;
}
extensionsOfTypes<ExtensionTypes = ManifestBase>(types: string[]): Observable<Array<ExtensionTypes>> {
extensionsOfTypes<ExtensionTypes extends ManifestBase = ManifestBase>(
types: string[]
): Observable<Array<ExtensionTypes>> {
return this._extensionsOfTypes(types).pipe(
withLatestFrom(this._kindsOfTypes(types)),
map(([exts, kinds]) =>
exts
.map((ext) => {
// Specific Extension Meta merge (does not merge conditions)
const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest;
if (baseManifest) {
const merged = { ...baseManifest, ...ext } as any;
if ((baseManifest as any).meta) {
merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta };
if (ext) {
const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest;
if (baseManifest) {
const merged = { ...baseManifest, ...ext } as any;
if ((baseManifest as any).meta) {
merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta };
}
return merged;
}
return merged;
}
return ext;
})