From e3d514507a88d71cc09ab6d23b14ca8f87fcf23d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 13:40:59 +0200 Subject: [PATCH] backend-app-api: rename BackendRegistrable to BackendFeature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../src/wiring/BackendInitializer.ts | 22 +++++++++---------- .../src/wiring/BackstageBackend.ts | 6 ++--- packages/backend-app-api/src/wiring/types.ts | 4 ++-- .../src/wiring/factories.ts | 14 +++++------- .../backend-plugin-api/src/wiring/index.ts | 2 +- .../backend-plugin-api/src/wiring/types.ts | 2 +- .../src/next/wiring/TestBackend.ts | 4 ++-- 7 files changed, 24 insertions(+), 30 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index ab086f4144..0c2cd3e541 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -15,7 +15,7 @@ */ import { - BackendRegistrable, + BackendFeature, ExtensionPoint, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -25,7 +25,7 @@ type ServiceOrExtensionPoint = ExtensionPoint | ServiceRef; export class BackendInitializer { #started = false; - #extensions = new Map(); + #features = new Map(); #registerInits = new Array(); #extensionPoints = new Map(); #serviceHolder: ServiceHolder; @@ -51,13 +51,11 @@ export class BackendInitializer { ); } - add(extension: BackendRegistrable, options?: TOptions) { + add(feature: BackendFeature, options?: TOptions) { if (this.#started) { - throw new Error( - 'extension can not be added after the backend has started', - ); + throw new Error('feature can not be added after the backend has started'); } - this.#extensions.set(extension, options); + this.#features.set(feature, options); } async start(): Promise { @@ -67,13 +65,13 @@ export class BackendInitializer { } this.#started = true; - for (const [extension] of this.#extensions) { + for (const [feature] of this.#features) { const provides = new Set>(); let registerInit: BackendRegisterInit | undefined = undefined; - console.log('Registering', extension.id); - extension.register({ + console.log('Registering', feature.id); + feature.register({ registerExtensionPoint: (extensionPointRef, impl) => { if (registerInit) { throw new Error('registerExtensionPoint called after registerInit'); @@ -89,7 +87,7 @@ export class BackendInitializer { throw new Error('registerInit must only be called once'); } registerInit = { - id: extension.id, + id: feature.id, provides, consumes: new Set(Object.values(registerOptions.deps)), deps: registerOptions.deps, @@ -100,7 +98,7 @@ export class BackendInitializer { if (!registerInit) { throw new Error( - `registerInit was not called by register in ${extension.id}`, + `registerInit was not called by register in ${feature.id}`, ); } diff --git a/packages/backend-app-api/src/wiring/BackstageBackend.ts b/packages/backend-app-api/src/wiring/BackstageBackend.ts index 104d2b6fc8..1e09ed77ba 100644 --- a/packages/backend-app-api/src/wiring/BackstageBackend.ts +++ b/packages/backend-app-api/src/wiring/BackstageBackend.ts @@ -16,7 +16,7 @@ import { AnyServiceFactory, - BackendRegistrable, + BackendFeature, } from '@backstage/backend-plugin-api'; import { BackendInitializer } from './BackendInitializer'; import { ServiceRegistry } from './ServiceRegistry'; @@ -31,8 +31,8 @@ export class BackstageBackend implements Backend { this.#initializer = new BackendInitializer(this.#services); } - add(extension: BackendRegistrable): void { - this.#initializer.add(extension); + add(feature: BackendFeature): void { + this.#initializer.add(feature); } async start(): Promise { diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index 2aaead805d..cdd4578789 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -16,7 +16,7 @@ import { AnyServiceFactory, - BackendRegistrable, + BackendFeature, FactoryFunc, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -26,7 +26,7 @@ import { BackstageBackend } from './BackstageBackend'; * @public */ export interface Backend { - add(extension: BackendRegistrable): void; + add(feature: BackendFeature): void; start(): Promise; } diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 1c3a27bb1c..a057c0d6ec 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -14,11 +14,7 @@ * limitations under the License. */ -import { - BackendInitRegistry, - BackendRegistrable, - ExtensionPoint, -} from './types'; +import { BackendInitRegistry, BackendFeature, ExtensionPoint } from './types'; /** @public */ export function createExtensionPoint(options: { @@ -46,8 +42,8 @@ export interface BackendPluginConfig { export function createBackendPlugin( config: BackendPluginConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable { + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: config.id, register(register: BackendInitRegistry) { @@ -70,8 +66,8 @@ export interface BackendModuleConfig { export function createBackendModule( config: BackendModuleConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable { + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: `${config.pluginId}.${config.moduleId}`, register(register: BackendInitRegistry) { diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 342a922dbd..2ad414beca 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -22,6 +22,6 @@ export { } from './factories'; export type { BackendInitRegistry, - BackendRegistrable, + BackendFeature, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 65525fd8aa..3f01879f80 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -48,7 +48,7 @@ export interface BackendInitRegistry { } /** @public */ -export interface BackendRegistrable { +export interface BackendFeature { id: string; register(reg: BackendInitRegistry): void; } diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index c7bc987cb8..30dbe7f804 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -19,7 +19,7 @@ import { AnyServiceFactory, ServiceRef, createServiceFactory, - BackendRegistrable, + BackendFeature, } from '@backstage/backend-plugin-api'; /** @alpha */ @@ -53,7 +53,7 @@ export function createTestBackend( /** @alpha */ export async function startTestBackend( options: TestBackendOptions & { - registrables?: BackendRegistrable[]; + registrables?: BackendFeature[]; }, ): Promise { const { registrables = [], ...otherOptions } = options;