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:
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user