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()), }); }