diff --git a/packages/frontend-plugin-api/src/wiring/createExtensionDataContainer.ts b/packages/frontend-internal/src/wiring/createExtensionDataContainer.ts similarity index 74% rename from packages/frontend-plugin-api/src/wiring/createExtensionDataContainer.ts rename to packages/frontend-internal/src/wiring/createExtensionDataContainer.ts index d79ec70f2f..e25846a643 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtensionDataContainer.ts +++ b/packages/frontend-internal/src/wiring/createExtensionDataContainer.ts @@ -16,33 +16,11 @@ import { AnyExtensionDataRef, + ExtensionDataContainer, ExtensionDataRef, ExtensionDataValue, -} from './createExtensionDataRef'; +} from '@backstage/frontend-plugin-api'; -/** @public */ -export type ExtensionDataContainer = - Iterable< - UExtensionData extends ExtensionDataRef< - infer IData, - infer IId, - infer IConfig - > - ? IConfig['optional'] extends true - ? never - : ExtensionDataValue - : never - > & { - get( - ref: ExtensionDataRef, - ): UExtensionData extends ExtensionDataRef - ? IConfig['optional'] extends true - ? IData | undefined - : IData - : never; - }; - -/** @internal */ export function createExtensionDataContainer( values: Iterable< UData extends ExtensionDataRef diff --git a/packages/frontend-internal/src/wiring/index.ts b/packages/frontend-internal/src/wiring/index.ts index 37e012a9d3..6a7cf35e27 100644 --- a/packages/frontend-internal/src/wiring/index.ts +++ b/packages/frontend-internal/src/wiring/index.ts @@ -14,5 +14,6 @@ * limitations under the License. */ +export { createExtensionDataContainer } from './createExtensionDataContainer'; export { OpaqueExtensionDefinition } from './InternalExtensionDefinition'; export { OpaqueFrontendPlugin } from './InternalFrontendPlugin'; diff --git a/packages/frontend-plugin-api/src/wiring/createExtension.ts b/packages/frontend-plugin-api/src/wiring/createExtension.ts index f93c9d21ce..04d7f15240 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtension.ts +++ b/packages/frontend-plugin-api/src/wiring/createExtension.ts @@ -20,10 +20,7 @@ import { ResolveInputValueOverrides, resolveInputOverrides, } from './resolveInputOverrides'; -import { - ExtensionDataContainer, - createExtensionDataContainer, -} from './createExtensionDataContainer'; +import { createExtensionDataContainer } from '@internal/frontend'; import { AnyExtensionDataRef, ExtensionDataValue, @@ -32,6 +29,7 @@ import { ExtensionInput } from './createExtensionInput'; import { z } from 'zod'; import { createSchemaFromZod } from '../schema/createSchemaFromZod'; import { OpaqueExtensionDefinition } from '@internal/frontend'; +import { ExtensionDataContainer } from './types'; /** * This symbol is used to pass parameter overrides from the extension override to the blueprint factory diff --git a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx index c6dcf74e1c..9d73f3ff60 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx +++ b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.test.tsx @@ -28,8 +28,10 @@ import { import { createExtensionInput } from './createExtensionInput'; import { RouteRef } from '../routing'; import { ExtensionDefinition } from './createExtension'; -import { createExtensionDataContainer } from './createExtensionDataContainer'; -import { OpaqueExtensionDefinition } from '@internal/frontend'; +import { + createExtensionDataContainer, + OpaqueExtensionDefinition, +} from '@internal/frontend'; function unused(..._any: any[]) {} diff --git a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts index 880caba967..57848a7980 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts +++ b/packages/frontend-plugin-api/src/wiring/createExtensionBlueprint.ts @@ -30,14 +30,12 @@ import { AnyExtensionDataRef, ExtensionDataValue, } from './createExtensionDataRef'; -import { - ExtensionDataContainer, - createExtensionDataContainer, -} from './createExtensionDataContainer'; +import { createExtensionDataContainer } from '@internal/frontend'; import { ResolveInputValueOverrides, resolveInputOverrides, } from './resolveInputOverrides'; +import { ExtensionDataContainer } from './types'; /** * @public diff --git a/packages/frontend-plugin-api/src/wiring/index.ts b/packages/frontend-plugin-api/src/wiring/index.ts index 8c90eeef51..e5aed3f743 100644 --- a/packages/frontend-plugin-api/src/wiring/index.ts +++ b/packages/frontend-plugin-api/src/wiring/index.ts @@ -28,7 +28,6 @@ export { createExtensionInput, type ExtensionInput, } from './createExtensionInput'; -export { type ExtensionDataContainer } from './createExtensionDataContainer'; export { createExtensionDataRef, type AnyExtensionDataRef, @@ -51,6 +50,7 @@ export { type Extension } from './resolveExtensionDefinition'; export { type AnyRoutes, type AnyExternalRoutes, + type ExtensionDataContainer, type ExtensionOverrides, type FeatureFlagConfig, type FrontendFeature, diff --git a/packages/frontend-plugin-api/src/wiring/resolveInputOverrides.ts b/packages/frontend-plugin-api/src/wiring/resolveInputOverrides.ts index 0541ca3620..b93f7ce370 100644 --- a/packages/frontend-plugin-api/src/wiring/resolveInputOverrides.ts +++ b/packages/frontend-plugin-api/src/wiring/resolveInputOverrides.ts @@ -17,16 +17,14 @@ import { AppNode } from '../apis'; import { Expand } from '@backstage/types'; import { ResolvedExtensionInput } from './createExtension'; -import { - ExtensionDataContainer, - createExtensionDataContainer, -} from './createExtensionDataContainer'; +import { createExtensionDataContainer } from '@internal/frontend'; import { AnyExtensionDataRef, ExtensionDataRefToValue, ExtensionDataValue, } from './createExtensionDataRef'; import { ExtensionInput } from './createExtensionInput'; +import { ExtensionDataContainer } from './types'; /** @public */ export type ResolveInputValueOverrides< diff --git a/packages/frontend-plugin-api/src/wiring/types.ts b/packages/frontend-plugin-api/src/wiring/types.ts index b52bbf446c..884234ac74 100644 --- a/packages/frontend-plugin-api/src/wiring/types.ts +++ b/packages/frontend-plugin-api/src/wiring/types.ts @@ -16,6 +16,11 @@ import { ExternalRouteRef, RouteRef, SubRouteRef } from '../routing'; import { ExtensionDefinition } from './createExtension'; +import { + AnyExtensionDataRef, + ExtensionDataRef, + ExtensionDataValue, +} from './createExtensionDataRef'; import { FrontendPlugin } from './createFrontendPlugin'; /** @@ -51,3 +56,25 @@ export interface ExtensionOverrides { * @deprecated import from {@link @backstage/frontend-app-api#FrontendFeature} instead */ export type FrontendFeature = FrontendPlugin | ExtensionOverrides; + +/** @public */ +export type ExtensionDataContainer = + Iterable< + UExtensionData extends ExtensionDataRef< + infer IData, + infer IId, + infer IConfig + > + ? IConfig['optional'] extends true + ? never + : ExtensionDataValue + : never + > & { + get( + ref: ExtensionDataRef, + ): UExtensionData extends ExtensionDataRef + ? IConfig['optional'] extends true + ? IData | undefined + : IData + : never; + };