Feat: condition config types as a generic for extension registry (#2473)

get condition config types as a generic for extension registry
This commit is contained in:
Niels Lyngsø
2024-11-05 10:06:59 +01:00
committed by GitHub
parent 4dffbf3bcb
commit 8424cdf8c2
2 changed files with 8 additions and 4 deletions

View File

@@ -100,6 +100,7 @@ const sortExtensions = (a: ManifestBase, b: ManifestBase): number => (b.weight |
export class UmbExtensionRegistry<
IncomingManifestTypes extends ManifestBase,
IncomingConditionConfigTypes extends UmbConditionConfigBase = UmbConditionConfigBase,
ManifestTypes extends ManifestBase = IncomingManifestTypes | ManifestBase,
> {
readonly MANIFEST_TYPES: ManifestTypes = undefined as never;
@@ -490,7 +491,7 @@ export class UmbExtensionRegistry<
* @param {string} alias - The alias of the extension to append the condition to.
* @param {UmbConditionConfigBase} newCondition - The condition to append to the extension.
*/
appendCondition(alias: string, newCondition: UmbConditionConfigBase) {
appendCondition(alias: string, newCondition: IncomingConditionConfigTypes) {
this.appendConditions(alias, [newCondition]);
}
@@ -499,7 +500,7 @@ export class UmbExtensionRegistry<
* @param {string} alias - The alias of the extension to append the condition to
* @param {Array<UmbConditionConfigBase>} newConditions - An array of conditions to be appended to an extension manifest.
*/
appendConditions(alias: string, newConditions: Array<UmbConditionConfigBase>) {
appendConditions(alias: string, newConditions: Array<IncomingConditionConfigTypes>) {
const existingConditionsToBeAdded = this.#additionalConditions.get(alias);
this.#additionalConditions.set(
alias,

View File

@@ -2,9 +2,12 @@ import type { ManifestKind } from '@umbraco-cms/backoffice/extension-api';
import { UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api';
export type UmbExtensionManifestKind = ManifestKind<UmbExtensionManifest>;
export type UmbBackofficeExtensionRegistry = UmbExtensionRegistry<UmbExtensionManifest>;
export type UmbBackofficeExtensionRegistry = UmbExtensionRegistry<UmbExtensionManifest, UmbExtensionConditionConfig>;
export const umbExtensionsRegistry = new UmbExtensionRegistry<UmbExtensionManifest>() as UmbBackofficeExtensionRegistry;
export const umbExtensionsRegistry = new UmbExtensionRegistry<
UmbExtensionManifest,
UmbExtensionConditionConfig
>() as UmbBackofficeExtensionRegistry;
/**
* @deprecated Use `UmbExtensionManifestKind` instead.