From e036ff862efae283303f74be3b1e12da2f81c50a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 5 Sep 2023 16:24:58 +0200 Subject: [PATCH] cli: switch package discovery to use global Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/bundler/packageDetection.ts | 2 +- packages/frontend-app-api/src/discover/index.ts | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/lib/bundler/packageDetection.ts b/packages/cli/src/lib/bundler/packageDetection.ts index 957eb87715..bcc10a358b 100644 --- a/packages/cli/src/lib/bundler/packageDetection.ts +++ b/packages/cli/src/lib/bundler/packageDetection.ts @@ -96,7 +96,7 @@ async function writeDetectedPackagesModule(packageNames: string[]) { 'node_modules', `${DETECTED_MODULES_MODULE_NAME}.js`, ), - `export const modules = [${requirePackageScript}];`, + `window['__@backstage/discovered__'] = { modules: [${requirePackageScript}] };`, ); } diff --git a/packages/frontend-app-api/src/discover/index.ts b/packages/frontend-app-api/src/discover/index.ts index bde5242505..5ef15f77cb 100644 --- a/packages/frontend-app-api/src/discover/index.ts +++ b/packages/frontend-app-api/src/discover/index.ts @@ -16,15 +16,22 @@ import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -// eslint-disable-next-line @backstage/no-undeclared-imports -import { modules } from '__backstage-autodetected-plugins__'; +interface DiscoveryGlobal { + modules: Array<{ name: string; module: object }>; +} /** * @public */ export function getAvailablePlugins(): BackstagePlugin[] { - return modules.flatMap(({ module: mod }) => - Object.values(mod).flatMap(val => (isBackstagePlugin(val) ? [val] : [])), + const discovered = ( + window as { '__@backstage/discovered__'?: DiscoveryGlobal } + )['__@backstage/discovered__']; + + return ( + discovered?.modules.flatMap(({ module: mod }) => + Object.values(mod).flatMap(val => (isBackstagePlugin(val) ? [val] : [])), + ) ?? [] ); }