diff --git a/src/extensions/registries/entity-setting-registry.ts b/src/extensions/registries/entity-setting-registry.ts index 8dd5ce6f25..9ad873ce67 100644 --- a/src/extensions/registries/entity-setting-registry.ts +++ b/src/extensions/registries/entity-setting-registry.ts @@ -15,8 +15,9 @@ export interface EntitySettingRegistration { kind: string; apiVersions: string[]; source?: string; - id?: string; components: EntitySettingComponents; + id?: string; + priority?: number; } export interface RegisteredEntitySetting extends EntitySettingRegistration { @@ -32,17 +33,21 @@ export class EntitySettingRegistry extends BaseRegistry { + let items = this.getItems().filter((item) => { return item.kind === kind && item.apiVersions.includes(apiVersion); + }).map((item) => { + item.priority = item.priority ?? 50; + + return item; }); if (source) { - return items.filter((item) => { + items = items.filter((item) => { return !item.source || item.source === source; }); - } else { - return items; } + + return items.sort((a, b) => b.priority - a.priority); } }