From 40e4377f56fc147673317da7ad9b50d875a21634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 23 Feb 2024 00:22:45 +0100 Subject: [PATCH] simplify extension registry generics --- .../controller/extensions-element-initializer.controller.ts | 4 ++-- .../src/libs/extension-api/types/map.types.ts | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts index d715be00b8..4be1d76664 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts @@ -11,8 +11,8 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** */ export class UmbExtensionsElementInitializer< - ManifestTypes extends ManifestBase, - ManifestTypeName extends string = ManifestTypes['type'], + ManifestTypes extends ManifestBase = ManifestBase, + ManifestTypeName extends string = string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase, ControllerType extends UmbExtensionElementInitializer = UmbExtensionElementInitializer, MyPermittedControllerType extends ControllerType = PermittedControllerType, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts index 9d7ebef3e0..255621e28f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts @@ -1,6 +1,6 @@ import type { ManifestBase } from './manifest-base.interface.js'; -export type ManifestTypeMap = { +type ManifestTypeMapGenerator = { [Manifest in ManifestTypes as Manifest['type']]: Manifest; } & { [key: string]: ManifestBase; @@ -9,4 +9,5 @@ export type ManifestTypeMap = { export type SpecificManifestTypeOrManifestBase< ManifestTypes extends ManifestBase, T extends string, -> = T extends keyof ManifestTypeMap ? ManifestTypeMap[T] : ManifestBase; + ManifestTypeMapType = ManifestTypeMapGenerator, +> = T extends keyof ManifestTypeMapType ? ManifestTypeMapType[T] : ManifestBase;