From 03570c71e44b81f0da89d7cf244c79e4687e6046 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 5 Feb 2023 16:07:08 +0100 Subject: [PATCH] backend-common: inline plugin database deps type Signed-off-by: Patrik Oldsberg --- packages/backend-common/api-report.md | 16 ++++++++-------- .../src/database/DatabaseManager.ts | 18 ++++++++++++++---- .../backend-common/src/database/connection.ts | 11 +++++++++-- .../src/database/connectors/sqlite3.ts | 11 +++++++++-- packages/backend-common/src/database/index.ts | 5 +---- packages/backend-common/src/database/types.ts | 15 ++++----------- 6 files changed, 45 insertions(+), 31 deletions(-) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 8b6311f8b0..e77a58b34c 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -234,7 +234,10 @@ export class Contexts { export function createDatabaseClient( dbConfig: Config, overrides?: Partial, - deps?: PluginDatabaseDependencies, + deps?: { + lifecycle: LifecycleService; + pluginMetadata: PluginMetadataService; + }, ): Knex; // @public @@ -257,7 +260,10 @@ export function createStatusCheckRouter(options: { export class DatabaseManager { forPlugin( pluginId: string, - deps?: PluginDatabaseDependencies, + deps?: { + lifecycle: LifecycleService; + pluginMetadata: PluginMetadataService; + }, ): PluginDatabaseManager; static fromConfig( config: Config, @@ -577,12 +583,6 @@ export function notFoundHandler(): RequestHandler; export { PluginCacheManager }; -// @public -export type PluginDatabaseDependencies = { - lifecycle: LifecycleService; - pluginMetadata: PluginMetadataService; -}; - export { PluginDatabaseManager }; export { PluginEndpointDiscovery }; diff --git a/packages/backend-common/src/database/DatabaseManager.ts b/packages/backend-common/src/database/DatabaseManager.ts index d8205faec1..08979a92f8 100644 --- a/packages/backend-common/src/database/DatabaseManager.ts +++ b/packages/backend-common/src/database/DatabaseManager.ts @@ -27,9 +27,13 @@ import { ensureSchemaExists, normalizeConnection, } from './connection'; -import { PluginDatabaseDependencies, PluginDatabaseManager } from './types'; +import { PluginDatabaseManager } from './types'; import path from 'path'; -import { LoggerService } from '@backstage/backend-plugin-api'; +import { + LifecycleService, + LoggerService, + PluginMetadataService, +} from '@backstage/backend-plugin-api'; import { stringifyError } from '@backstage/errors'; /** @@ -96,7 +100,10 @@ export class DatabaseManager { */ forPlugin( pluginId: string, - deps?: PluginDatabaseDependencies, + deps?: { + lifecycle: LifecycleService; + pluginMetadata: PluginMetadataService; + }, ): PluginDatabaseManager { const _this = this; @@ -312,7 +319,10 @@ export class DatabaseManager { */ private async getDatabase( pluginId: string, - deps?: PluginDatabaseDependencies, + deps?: { + lifecycle: LifecycleService; + pluginMetadata: PluginMetadataService; + }, ): Promise { if (this.databaseCache.has(pluginId)) { return this.databaseCache.get(pluginId)!; diff --git a/packages/backend-common/src/database/connection.ts b/packages/backend-common/src/database/connection.ts index 054ab7cfa8..ff10d349dd 100644 --- a/packages/backend-common/src/database/connection.ts +++ b/packages/backend-common/src/database/connection.ts @@ -19,9 +19,13 @@ import { JsonObject } from '@backstage/types'; import { InputError } from '@backstage/errors'; import knexFactory, { Knex } from 'knex'; import { mergeDatabaseConfig } from './config'; -import { DatabaseConnector, PluginDatabaseDependencies } from './types'; +import { DatabaseConnector } from './types'; import { mysqlConnector, pgConnector, sqlite3Connector } from './connectors'; +import { + LifecycleService, + PluginMetadataService, +} from '@backstage/backend-plugin-api'; type DatabaseClient = | 'pg' @@ -55,7 +59,10 @@ const ConnectorMapping: Record = { export function createDatabaseClient( dbConfig: Config, overrides?: Partial, - deps?: PluginDatabaseDependencies, + deps?: { + lifecycle: LifecycleService; + pluginMetadata: PluginMetadataService; + }, ) { const client: DatabaseClient = dbConfig.getString('client'); diff --git a/packages/backend-common/src/database/connectors/sqlite3.ts b/packages/backend-common/src/database/connectors/sqlite3.ts index 299e18a111..5a2dc46f18 100644 --- a/packages/backend-common/src/database/connectors/sqlite3.ts +++ b/packages/backend-common/src/database/connectors/sqlite3.ts @@ -20,7 +20,11 @@ import knexFactory, { Knex } from 'knex'; import path from 'path'; import { DevDataStore } from '@backstage/backend-dev-utils'; import { mergeDatabaseConfig } from '../config'; -import { DatabaseConnector, PluginDatabaseDependencies } from '../types'; +import { DatabaseConnector } from '../types'; +import { + LifecycleService, + PluginMetadataService, +} from '@backstage/backend-plugin-api'; /** * Creates a knex SQLite3 database connection @@ -31,7 +35,10 @@ import { DatabaseConnector, PluginDatabaseDependencies } from '../types'; export function createSqliteDatabaseClient( dbConfig: Config, overrides?: Knex.Config, - deps?: PluginDatabaseDependencies, + deps?: { + lifecycle: LifecycleService; + pluginMetadata: PluginMetadataService; + }, ) { const knexConfig = buildSqliteDatabaseConfig(dbConfig, overrides); const connConfig = knexConfig.connection as Knex.Sqlite3ConnectionConfig; diff --git a/packages/backend-common/src/database/index.ts b/packages/backend-common/src/database/index.ts index 483dbd9e40..0dde1ec239 100644 --- a/packages/backend-common/src/database/index.ts +++ b/packages/backend-common/src/database/index.ts @@ -22,8 +22,5 @@ export * from './DatabaseManager'; */ export { createDatabaseClient, ensureDatabaseExists } from './connection'; -export type { - PluginDatabaseManager, - PluginDatabaseDependencies, -} from './types'; +export type { PluginDatabaseManager } from './types'; export { isDatabaseConflictError } from './util'; diff --git a/packages/backend-common/src/database/types.ts b/packages/backend-common/src/database/types.ts index 7e96c44071..621bcc676b 100644 --- a/packages/backend-common/src/database/types.ts +++ b/packages/backend-common/src/database/types.ts @@ -23,16 +23,6 @@ import { Knex } from 'knex'; export type { DatabaseService as PluginDatabaseManager } from '@backstage/backend-plugin-api'; -/** - * Service dependencies for `PluginDatabaseManager`. - * - * @public - */ -export type PluginDatabaseDependencies = { - lifecycle: LifecycleService; - pluginMetadata: PluginMetadataService; -}; - /** * DatabaseConnector manages an underlying Knex database driver. */ @@ -43,7 +33,10 @@ export interface DatabaseConnector { createClient( dbConfig: Config, overrides?: Partial, - deps?: PluginDatabaseDependencies, + deps?: { + lifecycle: LifecycleService; + pluginMetadata: PluginMetadataService; + }, ): Knex; /** * createNameOverride provides a partial knex config sufficient to override a