From 79fd0b32d61e8585ecd65b9c23dc89ef690ad504 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 16:13:08 +0200 Subject: [PATCH] backend-defaults: Merge provided services with default services Signed-off-by: Johan Haals --- packages/backend-defaults/src/CreateBackend.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 8d61d6e915..7cc116a052 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -28,6 +28,7 @@ import { tokenManagerFactory, urlReaderFactory, } from '@backstage/backend-app-api'; +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; export const defaultServiceFactories = [ cacheFactory, @@ -42,8 +43,6 @@ export const defaultServiceFactories = [ httpRouterFactory, ]; -import { AnyServiceFactory } from '@backstage/backend-plugin-api'; - /** * @public */ @@ -55,8 +54,17 @@ export interface CreateBackendOptions { * @public */ export function createBackend(options?: CreateBackendOptions): Backend { - // TODO: merge with provided APIs + const services = new Map( + defaultServiceFactories.map(sf => [sf.service.id, sf]), + ); + + if (options?.services) { + for (const sf of options.services) { + services.set(sf.service.id, sf); + } + } + return createSpecializedBackend({ - services: [...defaultServiceFactories, ...(options?.services || [])], + services: Array.from(services.values()), }); }