From 0710eebec2b0e86f3bc885ba8eecf51fdfd435df Mon Sep 17 00:00:00 2001 From: Vincent Koc <25068+vincentkoc@users.noreply.github.com> Date: Fri, 19 Jun 2026 00:27:50 +0800 Subject: [PATCH] fix(plugins): avoid catalog lookup allocations --- .../official-external-plugin-catalog.ts | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/plugins/official-external-plugin-catalog.ts b/src/plugins/official-external-plugin-catalog.ts index 3ccbb3e89a4..cbd63a4efeb 100644 --- a/src/plugins/official-external-plugin-catalog.ts +++ b/src/plugins/official-external-plugin-catalog.ts @@ -137,16 +137,17 @@ function resolveOfficialExternalPluginLookupIds( entry: OfficialExternalPluginCatalogEntry, ): string[] { const manifest = getOfficialExternalPluginCatalogManifest(entry); - return uniqueStrings( - [ - normalizeOptionalString(manifest?.plugin?.id), - normalizeOptionalString(manifest?.channel?.id), - ...(manifest?.providers ?? []).flatMap((provider) => [ - normalizeOptionalString(provider.id), - ...(provider.aliases ?? []).map((alias) => normalizeOptionalString(alias)), - ]), - ].filter((value): value is string => Boolean(value)), - ); + const lookupIds = [ + normalizeOptionalString(manifest?.plugin?.id), + normalizeOptionalString(manifest?.channel?.id), + ]; + for (const provider of manifest?.providers ?? []) { + lookupIds.push(normalizeOptionalString(provider.id)); + for (const alias of provider.aliases ?? []) { + lookupIds.push(normalizeOptionalString(alias)); + } + } + return uniqueStrings(lookupIds.filter((value): value is string => Boolean(value))); } export function resolveOfficialExternalPluginLabel(