From d137cf53be7efccfe6c5df17f36e4b59f6722787 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 12 Sep 2023 15:16:14 +0200 Subject: [PATCH] frontend-app-api: Return ExtensionTreeNode instead of raw instance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Co-authored-by: Camila Belo Signed-off-by: Johan Haals --- packages/frontend-app-api/api-report.md | 17 ++++---------- .../frontend-app-api/src/wiring/createApp.tsx | 22 +++++++++---------- packages/frontend-app-api/src/wiring/index.ts | 1 - 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/packages/frontend-app-api/api-report.md b/packages/frontend-app-api/api-report.md index fe0ceecbc6..0c6471480d 100644 --- a/packages/frontend-app-api/api-report.md +++ b/packages/frontend-app-api/api-report.md @@ -4,6 +4,7 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; +import { Config } from '@backstage/config'; import { ConfigApi } from '@backstage/core-plugin-api'; <<<<<<< HEAD import { JSX as JSX_2 } from 'react'; @@ -20,24 +21,14 @@ export function createApp(options: { }; // @public (undocumented) -export function createExtensionTree(): ExtensionTree; - -// @public (undocumented) -export interface ExtensionInstance { - // (undocumented) - readonly $$type: '@backstage/ExtensionInstance'; - readonly attachments: Map; - getData(ref: ExtensionDataRef): T | undefined; - // (undocumented) - readonly id: string; -} +export function createExtensionTree(options: { config: Config }): ExtensionTree; // @public (undocumented) export interface ExtensionTree { // (undocumented) - getExtension(id: string): ExtensionInstance | undefined; + getExtension(id: string): ExtensionTreeNode | undefined; // (undocumented) - getExtensionAttachments(id: string, inputName: string): ExtensionInstance[]; + getExtensionAttachments(id: string, inputName: string): ExtensionTreeNode[]; } // @public (undocumented) diff --git a/packages/frontend-app-api/src/wiring/createApp.tsx b/packages/frontend-app-api/src/wiring/createApp.tsx index e5dc1db847..23b7b4ca11 100644 --- a/packages/frontend-app-api/src/wiring/createApp.tsx +++ b/packages/frontend-app-api/src/wiring/createApp.tsx @@ -15,7 +15,7 @@ */ import React, { JSX } from 'react'; -import { ConfigReader } from '@backstage/config'; +import { ConfigReader, Config } from '@backstage/config'; import { BackstagePlugin, coreExtensionData, @@ -84,29 +84,29 @@ export interface ExtensionTreeNode { /** @public */ export interface ExtensionTree { - getExtension(id: string): ExtensionInstance | undefined; - getExtensionAttachments(id: string, inputName: string): ExtensionInstance[]; + getExtension(id: string): ExtensionTreeNode | undefined; + getExtensionAttachments(id: string, inputName: string): ExtensionTreeNode[]; } /** @public */ -export function createExtensionTree(): ExtensionTree { +export function createExtensionTree(options: { + config: Config; +}): ExtensionTree { const plugins = getAvailablePlugins(); const { instances } = createInstances({ plugins, - config: ConfigReader.fromConfigs( - overrideBaseUrlConfigs(defaultConfigLoaderSync()), - ), + config: options.config, }); return { - getExtension(id: string): ExtensionInstance | undefined { + getExtension(id: string): ExtensionTreeNode | undefined { return instances.get(id); }, getExtensionAttachments( id: string, inputName: string, - ): ExtensionInstance[] { - return this.getExtension(id)?.attachments.get(inputName) ?? []; + ): ExtensionTreeNode[] { + return instances.get(id)?.attachments.get(inputName) ?? []; }, }; } @@ -116,7 +116,7 @@ export function createExtensionTree(): ExtensionTree { */ export function createInstances(options: { plugins: BackstagePlugin[]; - config: ConfigApi; + config: Config; }) { const builtinExtensions = [Core, CoreRoutes, CoreNav, CoreLayout]; diff --git a/packages/frontend-app-api/src/wiring/index.ts b/packages/frontend-app-api/src/wiring/index.ts index 7eb1cc2de7..dc1ba3bc13 100644 --- a/packages/frontend-app-api/src/wiring/index.ts +++ b/packages/frontend-app-api/src/wiring/index.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -export type { ExtensionInstance } from './createExtensionInstance'; export { createApp, createExtensionTree,