From b20dadf0f0c8ee8a7062553863e078f4b8cb2972 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 29 Sep 2023 17:26:44 +0200 Subject: [PATCH] catalog: update new alpha setup to include starred entities API Signed-off-by: Patrik Oldsberg --- plugins/catalog/alpha-api-report.md | 3 +++ plugins/catalog/src/alpha.ts | 34 ++++++++++++++++++----------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/plugins/catalog/alpha-api-report.md b/plugins/catalog/alpha-api-report.md index 631c43e73c..060baeccbf 100644 --- a/plugins/catalog/alpha-api-report.md +++ b/plugins/catalog/alpha-api-report.md @@ -23,5 +23,8 @@ export const catalogTranslationRef: TranslationRef< const _default: BackstagePlugin; export default _default; +// @alpha (undocumented) +export const StarredEntitiesApi: Extension<{}>; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog/src/alpha.ts b/plugins/catalog/src/alpha.ts index d9c2af338d..82e592d5b7 100644 --- a/plugins/catalog/src/alpha.ts +++ b/plugins/catalog/src/alpha.ts @@ -17,38 +17,46 @@ export * from './translation'; import { - DiscoveryApi, - FetchApi, + createApiFactory, discoveryApiRef, fetchApiRef, + storageApiRef, } from '@backstage/core-plugin-api'; import { CatalogClient } from '@backstage/catalog-client'; import { createApiExtension, createPlugin, } from '@backstage/frontend-plugin-api'; -import { catalogApiRef } from '@backstage/plugin-catalog-react'; +import { + catalogApiRef, + starredEntitiesApiRef, +} from '@backstage/plugin-catalog-react'; +import { DefaultStarredEntitiesApi } from './apis'; /** @alpha */ export const CatalogApi = createApiExtension({ - factory: { + factory: createApiFactory({ api: catalogApiRef, deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef, }, - factory: ({ - discoveryApi, - fetchApi, - }: { - discoveryApi: DiscoveryApi; - fetchApi: FetchApi; - }) => new CatalogClient({ discoveryApi, fetchApi }), - }, + factory: ({ discoveryApi, fetchApi }) => + new CatalogClient({ discoveryApi, fetchApi }), + }), +}); + +/** @alpha */ +export const StarredEntitiesApi = createApiExtension({ + factory: createApiFactory({ + api: starredEntitiesApiRef, + deps: { storageApi: storageApiRef }, + factory: ({ storageApi }) => new DefaultStarredEntitiesApi({ storageApi }), + }), }); /** @alpha */ export default createPlugin({ id: 'catalog', - extensions: [CatalogApi], + extensions: [CatalogApi, StarredEntitiesApi], });