API report updates for extension ID redesign

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2023-11-22 19:12:53 +01:00
parent e56eb22c54
commit a794f37a14
12 changed files with 108 additions and 60 deletions
+64 -27
View File
@@ -376,23 +376,18 @@ export type CoreProgressComponent = ComponentType<PropsWithChildren<{}>>;
export function createApiExtension<
TConfig extends {},
TInputs extends AnyExtensionInputMap,
>(
options: (
| {
api: AnyApiRef;
factory: (options: {
config: TConfig;
inputs: Expand<ExtensionInputValues<TInputs>>;
}) => AnyApiFactory;
}
| {
factory: AnyApiFactory;
}
) & {
configSchema?: PortableSchema<TConfig>;
inputs?: TInputs;
},
): Extension<TConfig>;
>(options: {
factory:
| AnyApiFactory
| ((options: {
config: TConfig;
inputs: Expand<ExtensionInputValues<TInputs>>;
}) => AnyApiFactory);
namespace?: string;
name?: string;
configSchema?: PortableSchema<TConfig>;
inputs?: TInputs;
}): ExtensionDefinition<TConfig>;
export { createApiFactory };
@@ -430,7 +425,7 @@ export function createExtension<
TConfig = never,
>(
options: CreateExtensionOptions<TOutput, TInputs, TConfig>,
): Extension<TConfig>;
): ExtensionDefinition<TConfig>;
// @public (undocumented)
export function createExtensionDataRef<TData>(
@@ -477,10 +472,14 @@ export interface CreateExtensionOptions<
inputs: Expand<ExtensionInputValues<TInputs>>;
}): Expand<ExtensionDataValues<TOutput>>;
// (undocumented)
id: string;
// (undocumented)
inputs?: TInputs;
// (undocumented)
kind?: string;
// (undocumented)
name?: string;
// (undocumented)
namespace?: string;
// (undocumented)
output: TOutput;
}
@@ -516,11 +515,12 @@ export function createExternalRouteRef<
// @public
export function createNavItemExtension(options: {
id: string;
namespace?: string;
name?: string;
routeRef: RouteRef<undefined>;
title: string;
icon: IconComponent_2;
}): Extension<{
}): ExtensionDefinition<{
title: string;
}>;
@@ -539,7 +539,8 @@ export function createPageExtension<
configSchema: PortableSchema<TConfig>;
}
) & {
id: string;
namespace?: string;
name?: string;
attachTo?: {
id: string;
input: string;
@@ -552,7 +553,7 @@ export function createPageExtension<
inputs: Expand<ExtensionInputValues<TInputs>>;
}) => Promise<JSX.Element>;
},
): Extension<TConfig>;
): ExtensionDefinition<TConfig>;
// @public (undocumented)
export function createPlugin<
@@ -616,7 +617,9 @@ export function createSubRouteRef<
}): MakeSubRouteRef<PathParams<Path>, ParentParams>;
// @public (undocumented)
export function createThemeExtension(theme: AppTheme): Extension<never>;
export function createThemeExtension(
theme: AppTheme,
): ExtensionDefinition<never>;
export { DiscoveryApi };
@@ -703,6 +706,40 @@ export type ExtensionDataValues<TExtensionData extends AnyExtensionDataMap> = {
: never]?: TExtensionData[DataName]['T'];
};
// @public (undocumented)
export interface ExtensionDefinition<TConfig> {
// (undocumented)
$$type: '@backstage/ExtensionDefinition';
// (undocumented)
attachTo: {
id: string;
input: string;
};
// (undocumented)
configSchema?: PortableSchema<TConfig>;
// (undocumented)
disabled: boolean;
// (undocumented)
factory(options: {
node: AppNode;
config: TConfig;
inputs: Record<
string,
undefined | Record<string, unknown> | Array<Record<string, unknown>>
>;
}): ExtensionDataValues<any>;
// (undocumented)
inputs: AnyExtensionInputMap;
// (undocumented)
kind?: string;
// (undocumented)
name?: string;
// (undocumented)
namespace?: string;
// (undocumented)
output: AnyExtensionDataMap;
}
// @public (undocumented)
export interface ExtensionInput<
TExtensionData extends AnyExtensionDataMap,
@@ -743,7 +780,7 @@ export interface ExtensionOverrides {
// @public (undocumented)
export interface ExtensionOverridesOptions {
// (undocumented)
extensions: Extension<unknown>[];
extensions: ExtensionDefinition<unknown>[];
// (undocumented)
featureFlags?: FeatureFlagConfig[];
}
@@ -841,7 +878,7 @@ export interface PluginOptions<
ExternalRoutes extends AnyExternalRoutes,
> {
// (undocumented)
extensions?: Extension<unknown>[];
extensions?: ExtensionDefinition<unknown>[];
// (undocumented)
externalRoutes?: ExternalRoutes;
// (undocumented)
+3 -3
View File
@@ -4,7 +4,7 @@
```ts
import { ErrorWithContext } from '@backstage/test-utils';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { JsonObject } from '@backstage/types';
import { MockAnalyticsApi } from '@backstage/test-utils';
import { MockConfigApi } from '@backstage/test-utils';
@@ -24,7 +24,7 @@ import { withLogCollector } from '@backstage/test-utils';
// @public (undocumented)
export function createExtensionTester<TConfig>(
subject: Extension<TConfig>,
subject: ExtensionDefinition<TConfig>,
options?: {
config?: TConfig;
},
@@ -36,7 +36,7 @@ export { ErrorWithContext };
export class ExtensionTester {
// (undocumented)
add<TConfig>(
extension: Extension<TConfig>,
extension: ExtensionDefinition<TConfig>,
options?: {
config?: TConfig;
},
+2 -2
View File
@@ -4,11 +4,11 @@
```ts
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { TranslationRef } from '@backstage/core-plugin-api/alpha';
// @alpha (undocumented)
export const AdrSearchResultListItemExtension: Extension<{
export const AdrSearchResultListItemExtension: ExtensionDefinition<{
lineClamp: number;
noTrack: boolean;
}>;
+7 -5
View File
@@ -8,7 +8,7 @@
import { AnyExtensionInputMap } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExtensionInputValues } from '@backstage/frontend-plugin-api';
import { ResourcePermission } from '@backstage/plugin-permission-common';
import { RouteRef } from '@backstage/frontend-plugin-api';
@@ -17,7 +17,8 @@ import { RouteRef } from '@backstage/frontend-plugin-api';
export function createEntityCardExtension<
TInputs extends AnyExtensionInputMap,
>(options: {
id: string;
namespace?: string;
name?: string;
attachTo?: {
id: string;
input: string;
@@ -30,7 +31,7 @@ export function createEntityCardExtension<
loader: (options: {
inputs: Expand<ExtensionInputValues<TInputs>>;
}) => Promise<JSX.Element>;
}): Extension<{
}): ExtensionDefinition<{
filter?: string | undefined;
}>;
@@ -38,7 +39,8 @@ export function createEntityCardExtension<
export function createEntityContentExtension<
TInputs extends AnyExtensionInputMap,
>(options: {
id: string;
namespace?: string;
name?: string;
attachTo?: {
id: string;
input: string;
@@ -54,7 +56,7 @@ export function createEntityContentExtension<
loader: (options: {
inputs: Expand<ExtensionInputValues<TInputs>>;
}) => Promise<JSX.Element>;
}): Extension<{
}): ExtensionDefinition<{
title: string;
path: string;
filter?: string | undefined;
+4 -3
View File
@@ -7,7 +7,7 @@
import { AnyExtensionInputMap } from '@backstage/frontend-plugin-api';
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ExternalRouteRef } from '@backstage/frontend-plugin-api';
import { PortableSchema } from '@backstage/frontend-plugin-api';
import { RouteRef } from '@backstage/frontend-plugin-api';
@@ -17,11 +17,12 @@ export function createCatalogFilterExtension<
TInputs extends AnyExtensionInputMap,
TConfig = never,
>(options: {
id: string;
namespace?: string;
name?: string;
inputs?: TInputs;
configSchema?: PortableSchema<TConfig>;
loader: (options: { config: TConfig }) => Promise<JSX.Element>;
}): Extension<TConfig>;
}): ExtensionDefinition<TConfig>;
// @alpha (undocumented)
const _default: BackstagePlugin<
+2 -2
View File
@@ -4,14 +4,14 @@
```ts
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
// @alpha (undocumented)
const _default: BackstagePlugin<{}, {}>;
export default _default;
// @alpha (undocumented)
export const ExploreSearchResultListItemExtension: Extension<{
export const ExploreSearchResultListItemExtension: ExtensionDefinition<{
noTrack?: boolean | undefined;
}>;
+8 -7
View File
@@ -4,20 +4,21 @@
```ts
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { GraphQLEndpoint } from '@backstage/plugin-graphiql';
import { PortableSchema } from '@backstage/frontend-plugin-api';
import { RouteRef } from '@backstage/frontend-plugin-api';
// @alpha (undocumented)
export function createEndpointExtension<TConfig extends {}>(options: {
id: string;
export function createGraphiQLEndpointExtension<TConfig extends {}>(options: {
namespace?: string;
name?: string;
configSchema?: PortableSchema<TConfig>;
disabled?: boolean;
factory: (options: { config: TConfig }) => {
endpoint: GraphQLEndpoint;
};
}): Extension<TConfig>;
}): ExtensionDefinition<TConfig>;
// @alpha (undocumented)
const _default: BackstagePlugin<
@@ -29,15 +30,15 @@ const _default: BackstagePlugin<
export default _default;
// @alpha (undocumented)
export const graphiqlBrowseApi: Extension<{}>;
export const graphiqlBrowseApi: ExtensionDefinition<{}>;
// @alpha (undocumented)
export const GraphiqlPage: Extension<{
export const GraphiqlPage: ExtensionDefinition<{
path: string;
}>;
// @alpha (undocumented)
export const graphiqlPageSidebarItem: Extension<{
export const graphiqlPageSidebarItem: ExtensionDefinition<{
title: string;
}>;
+6 -3
View File
@@ -6,7 +6,7 @@
/// <reference types="react" />
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { ListItemProps } from '@material-ui/core';
import { PortableSchema } from '@backstage/frontend-plugin-api';
import { SearchDocument } from '@backstage/plugin-search-common';
@@ -23,7 +23,9 @@ export function createSearchResultListItemExtension<
TConfig extends {
noTrack?: boolean;
},
>(options: SearchResultItemExtensionOptions<TConfig>): Extension<TConfig>;
>(
options: SearchResultItemExtensionOptions<TConfig>,
): ExtensionDefinition<TConfig>;
// @alpha (undocumented)
export type SearchResultItemExtensionComponent = <
@@ -47,7 +49,8 @@ export type SearchResultItemExtensionOptions<
noTrack?: boolean;
},
> = {
id: string;
namespace?: string;
name?: string;
attachTo?: {
id: string;
input: string;
+4 -4
View File
@@ -4,7 +4,7 @@
```ts
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { RouteRef } from '@backstage/frontend-plugin-api';
// @alpha (undocumented)
@@ -17,15 +17,15 @@ const _default: BackstagePlugin<
export default _default;
// @alpha (undocumented)
export const SearchApi: Extension<{}>;
export const SearchApi: ExtensionDefinition<{}>;
// @alpha (undocumented)
export const SearchNavItem: Extension<{
export const SearchNavItem: ExtensionDefinition<{
title: string;
}>;
// @alpha (undocumented)
export const SearchPage: Extension<{
export const SearchPage: ExtensionDefinition<{
path: string;
noTrack: boolean;
}>;
+5 -2
View File
@@ -4,7 +4,7 @@
```ts
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { RouteRef } from '@backstage/frontend-plugin-api';
// @alpha (undocumented)
@@ -17,7 +17,10 @@ const _default: BackstagePlugin<
export default _default;
// @alpha (undocumented)
export const TechRadarPage: Extension<{
export const sampleTechRadarApi: ExtensionDefinition<{}>;
// @alpha (undocumented)
export const TechRadarPage: ExtensionDefinition<{
height: number;
width: number;
title: string;
+1
View File
@@ -47,6 +47,7 @@ export const TechRadarPage = createPageExtension({
import('./components').then(m => <m.RadarPage {...config} />),
});
/** @alpha */
export const sampleTechRadarApi = createApiExtension({
factory() {
return createApiFactory(techRadarApiRef, new SampleTechRadarApi());
+2 -2
View File
@@ -4,7 +4,7 @@
```ts
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { RouteRef } from '@backstage/frontend-plugin-api';
// @alpha (undocumented)
@@ -23,7 +23,7 @@ const _default: BackstagePlugin<
export default _default;
// @alpha (undocumented)
export const TechDocsSearchResultListItemExtension: Extension<{
export const TechDocsSearchResultListItemExtension: ExtensionDefinition<{
lineClamp: number;
noTrack: boolean;
asListItem: boolean;