frontend-app-api: removed deprecated FrontendFeature type

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2025-08-01 09:57:34 +02:00
parent ff76965df3
commit df7bd3ba0d
8 changed files with 17 additions and 19 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-test-utils': patch
---
Updated import of the `FrontendFeature` type.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': minor
---
**BREAKING**: Removed the deprecated `FrontendFeature` type, import it from `@backstage/frontend-plugin-api` instead.
+2 -5
View File
@@ -8,7 +8,7 @@ import { AppTree } from '@backstage/frontend-plugin-api';
import { ConfigApi } from '@backstage/core-plugin-api';
import { ExtensionFactoryMiddleware } from '@backstage/frontend-plugin-api';
import { ExternalRouteRef } from '@backstage/frontend-plugin-api';
import { FrontendFeature as FrontendFeature_2 } from '@backstage/frontend-plugin-api';
import { FrontendFeature } from '@backstage/frontend-plugin-api';
import { FrontendPluginInfo } from '@backstage/frontend-plugin-api';
import { JsonObject } from '@backstage/types';
import { RouteRef } from '@backstage/frontend-plugin-api';
@@ -35,7 +35,7 @@ export function createSpecializedApp(options?: CreateSpecializedAppOptions): {
// @public
export type CreateSpecializedAppOptions = {
features?: FrontendFeature_2[];
features?: FrontendFeature[];
config?: ConfigApi;
bindRoutes?(context: { bind: CreateAppRouteBinder }): void;
apis?: ApiHolder;
@@ -48,9 +48,6 @@ export type CreateSpecializedAppOptions = {
pluginInfoResolver?: FrontendPluginInfoResolver;
};
// @public @deprecated (undocumented)
export type FrontendFeature = FrontendFeature_2;
// @public
export type FrontendPluginInfoResolver = (ctx: {
packageJson(): Promise<JsonObject | undefined>;
@@ -18,6 +18,7 @@ import {
RouteRef,
SubRouteRef,
ExternalRouteRef,
FrontendFeature,
} from '@backstage/frontend-plugin-api';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import {
@@ -29,7 +30,6 @@ import { toInternalExternalRouteRef } from '../../../frontend-plugin-api/src/rou
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import { toInternalSubRouteRef } from '../../../frontend-plugin-api/src/routing/SubRouteRef';
import { OpaqueFrontendPlugin } from '@internal/frontend';
import { FrontendFeature } from '../wiring/types';
/** @internal */
export interface RouteRefsById {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { Extension } from '@backstage/frontend-plugin-api';
import { Extension, FrontendFeature } from '@backstage/frontend-plugin-api';
import { ExtensionParameters } from './readAppExtensionsConfig';
import { AppNodeSpec } from '@backstage/frontend-plugin-api';
import { OpaqueFrontendPlugin } from '@internal/frontend';
@@ -25,7 +25,6 @@ import {
} from '../../../frontend-plugin-api/src/wiring/createFrontendModule';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import { toInternalExtension } from '../../../frontend-plugin-api/src/wiring/resolveExtensionDefinition';
import { FrontendFeature } from '../wiring/types';
/** @internal */
export function resolveAppNodeSpecs(options: {
@@ -14,15 +14,9 @@
* limitations under the License.
*/
import { RouteRef } from '@backstage/frontend-plugin-api';
import { FrontendFeature as PluginApiFrontendFeature } from '@backstage/frontend-plugin-api';
import { BackstageRouteObject } from '../routing/types';
import { RouteAliasResolver } from '../routing/RouteAliasResolver';
/** @public
* @deprecated Use {@link @backstage/frontend-plugin-api#FrontendFeature} instead.
*/
export type FrontendFeature = PluginApiFrontendFeature;
/** @internal */
export type RouteInfo = {
routePaths: Map<RouteRef, string>;
+1 -1
View File
@@ -13,7 +13,7 @@ import { ErrorWithContext } from '@backstage/test-utils';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionDefinitionParameters } from '@backstage/frontend-plugin-api';
import { FrontendFeature } from '@backstage/frontend-app-api';
import { FrontendFeature } from '@backstage/frontend-plugin-api';
import { JsonObject } from '@backstage/types';
import { mockApis } from '@backstage/test-utils';
import { MockConfigApi } from '@backstage/test-utils';
@@ -16,10 +16,7 @@
import { Fragment } from 'react';
import { Link, MemoryRouter } from 'react-router-dom';
import {
createSpecializedApp,
FrontendFeature,
} from '@backstage/frontend-app-api';
import { createSpecializedApp } from '@backstage/frontend-app-api';
import { RenderResult, render } from '@testing-library/react';
import { ConfigReader } from '@backstage/config';
import { JsonObject } from '@backstage/types';
@@ -33,6 +30,7 @@ import {
RouterBlueprint,
NavItemBlueprint,
createFrontendPlugin,
FrontendFeature,
} from '@backstage/frontend-plugin-api';
import appPlugin from '@backstage/plugin-app';