From b729f9f31f2feeb8f319f4b58906064ad7bbecf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 7 Feb 2023 10:49:45 +0100 Subject: [PATCH 1/2] Moved the options of the config service out to the factory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/silent-peas-fly.md | 5 +++++ packages/backend-app-api/api-report.md | 4 +++- .../implementations/config/configFactory.ts | 21 ++++++++++--------- 3 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 .changeset/silent-peas-fly.md diff --git a/.changeset/silent-peas-fly.md b/.changeset/silent-peas-fly.md new file mode 100644 index 0000000000..68dd6dfe47 --- /dev/null +++ b/.changeset/silent-peas-fly.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Moved the options of the config service out to the factory itself, where it belongs diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 7ad4b590ab..e7bdc40da5 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -53,7 +53,9 @@ export interface Backend { export const cacheFactory: () => ServiceFactory; // @public (undocumented) -export const configFactory: () => ServiceFactory; +export const configFactory: ( + options?: ConfigFactoryOptions | undefined, +) => ServiceFactory; // @public (undocumented) export interface ConfigFactoryOptions { diff --git a/packages/backend-app-api/src/services/implementations/config/configFactory.ts b/packages/backend-app-api/src/services/implementations/config/configFactory.ts index 0ec15c29fe..833730fdbd 100644 --- a/packages/backend-app-api/src/services/implementations/config/configFactory.ts +++ b/packages/backend-app-api/src/services/implementations/config/configFactory.ts @@ -35,13 +35,14 @@ export interface ConfigFactoryOptions { } /** @public */ -export const configFactory = createServiceFactory({ - service: coreServices.config, - deps: {}, - async factory({}, options?: ConfigFactoryOptions) { - const { argv = process.argv, remote } = options ?? {}; - - const { config } = await loadBackendConfig({ argv, remote }); - return config; - }, -}); +export const configFactory = createServiceFactory( + (options?: ConfigFactoryOptions) => ({ + service: coreServices.config, + deps: {}, + async factory({}) { + const { argv = process.argv, remote } = options ?? {}; + const { config } = await loadBackendConfig({ argv, remote }); + return config; + }, + }), +); From 5f98a682bb18c4b5607ff84ea7c2be0ae56f9ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 7 Feb 2023 11:15:21 +0100 Subject: [PATCH 2/2] root htt router too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/silent-peas-fly.md | 2 +- packages/backend-app-api/api-report.md | 4 +- .../rootHttpRouter/rootHttpRouterFactory.ts | 69 +++++++++---------- 3 files changed, 37 insertions(+), 38 deletions(-) diff --git a/.changeset/silent-peas-fly.md b/.changeset/silent-peas-fly.md index 68dd6dfe47..8148cb5d12 100644 --- a/.changeset/silent-peas-fly.md +++ b/.changeset/silent-peas-fly.md @@ -2,4 +2,4 @@ '@backstage/backend-app-api': patch --- -Moved the options of the config service out to the factory itself, where it belongs +Moved the options of the `config` and `rootHttpRouter` services out to the factories themselves, where they belong diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index e7bdc40da5..8dc85d1728 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -232,7 +232,9 @@ export interface RootHttpRouterConfigureOptions { } // @public (undocumented) -export const rootHttpRouterFactory: () => ServiceFactory; +export const rootHttpRouterFactory: ( + options?: RootHttpRouterFactoryOptions | undefined, +) => ServiceFactory; // @public (undocumented) export type RootHttpRouterFactoryOptions = { diff --git a/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterFactory.ts b/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterFactory.ts index f46f92741b..816c615817 100644 --- a/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterFactory.ts +++ b/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterFactory.ts @@ -69,45 +69,42 @@ function defaultConfigure({ } /** @public */ -export const rootHttpRouterFactory = createServiceFactory({ - service: coreServices.rootHttpRouter, - deps: { - config: coreServices.config, - rootLogger: coreServices.rootLogger, - lifecycle: coreServices.rootLifecycle, - }, - async factory( - { config, rootLogger, lifecycle }, - { - indexPath, - configure = defaultConfigure, - }: RootHttpRouterFactoryOptions = {}, - ) { - const logger = rootLogger.child({ service: 'rootHttpRouter' }); - const app = express(); +export const rootHttpRouterFactory = createServiceFactory( + (options?: RootHttpRouterFactoryOptions) => ({ + service: coreServices.rootHttpRouter, + deps: { + config: coreServices.config, + rootLogger: coreServices.rootLogger, + lifecycle: coreServices.rootLifecycle, + }, + async factory({ config, rootLogger, lifecycle }) { + const { indexPath, configure = defaultConfigure } = options ?? {}; + const logger = rootLogger.child({ service: 'rootHttpRouter' }); + const app = express(); - const router = DefaultRootHttpRouter.create({ indexPath }); - const middleware = MiddlewareFactory.create({ config, logger }); + const router = DefaultRootHttpRouter.create({ indexPath }); + const middleware = MiddlewareFactory.create({ config, logger }); - configure({ - app, - routes: router.handler(), - middleware, - config, - logger, - lifecycle, - }); + configure({ + app, + routes: router.handler(), + middleware, + config, + logger, + lifecycle, + }); - const server = await createHttpServer( - app, - readHttpServerOptions(config.getOptionalConfig('backend')), - { logger }, - ); + const server = await createHttpServer( + app, + readHttpServerOptions(config.getOptionalConfig('backend')), + { logger }, + ); - lifecycle.addShutdownHook(() => server.stop()); + lifecycle.addShutdownHook(() => server.stop()); - await server.start(); + await server.start(); - return router; - }, -}); + return router; + }, + }), +);