From baf56d5abf4cbc44bd43e1a874851e50d804c1d0 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Tue, 26 Sep 2023 14:50:35 +0200 Subject: [PATCH] feat(search): create search api extension Signed-off-by: Camila Belo --- plugins/search/package.json | 1 + plugins/search/src/alpha.tsx | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/plugins/search/package.json b/plugins/search/package.json index f5d4042964..8b90867a5a 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -51,6 +51,7 @@ "@backstage/core-components": "workspace:^", "@backstage/core-plugin-api": "workspace:^", "@backstage/errors": "workspace:^", + "@backstage/frontend-plugin-api": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-search-common": "workspace:^", "@backstage/plugin-search-react": "workspace:^", diff --git a/plugins/search/src/alpha.tsx b/plugins/search/src/alpha.tsx index eb2f165350..89ff6b7664 100644 --- a/plugins/search/src/alpha.tsx +++ b/plugins/search/src/alpha.tsx @@ -13,3 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { + DiscoveryApi, + IdentityApi, + discoveryApiRef, + identityApiRef, +} from '@backstage/core-plugin-api'; + +import { createApiExtension } from '@backstage/frontend-plugin-api'; + +import { searchApiRef } from '@backstage/plugin-search-react'; + +import { SearchClient } from './apis'; + +/** @alpha */ +export const SearchApi = createApiExtension({ + factory: { + api: searchApiRef, + deps: { discoveryApi: discoveryApiRef, identityApi: identityApiRef }, + factory: ({ + identityApi, + discoveryApi, + }: { + identityApi: IdentityApi; + discoveryApi: DiscoveryApi; + }) => new SearchClient({ discoveryApi, identityApi }), + }, +});