From f3d530bbe6ab5328059f49326bd3471ab7a9862b Mon Sep 17 00:00:00 2001 From: sblausten Date: Wed, 29 Jun 2022 18:01:31 +0200 Subject: [PATCH] Use new interface Signed-off-by: sblausten --- .../src/service/fact/FactRetrieverRegistry.ts | 13 +++++++++++-- .../src/service/techInsightsContextBuilder.ts | 9 ++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts index b122f52f0a..a8317db1d2 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts @@ -21,8 +21,17 @@ import { } from '@backstage/plugin-tech-insights-node'; import { ConflictError, NotFoundError } from '@backstage/errors'; -export class FactRetrieverRegistry { - private readonly retrievers = new Map(); +export interface FactRetrieverRegistryInterface { + readonly retrievers: Map; + register(registration: FactRetrieverRegistration): void; + get(retrieverReference: string): FactRetrieverRegistration; + listRetrievers(): FactRetriever[]; + listRegistrations(): FactRetrieverRegistration[]; + getSchemas(): FactSchema[]; +} + +export class FactRetrieverRegistry implements FactRetrieverRegistryInterface { + readonly retrievers = new Map(); constructor(retrievers: FactRetrieverRegistration[]) { retrievers.forEach(it => { diff --git a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts index 418c406784..1314ee5dbd 100644 --- a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts +++ b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts @@ -16,7 +16,10 @@ import { FactRetrieverEngine } from './fact/FactRetrieverEngine'; import { Logger } from 'winston'; -import { FactRetrieverRegistry } from './fact/FactRetrieverRegistry'; +import { + FactRetrieverRegistry, + FactRetrieverRegistryInterface, +} from './fact/FactRetrieverRegistry'; import { Config } from '@backstage/config'; import { PluginDatabaseManager, @@ -59,7 +62,7 @@ export interface TechInsightsOptions< */ factCheckerFactory?: FactCheckerFactory; - factRetrieverRegistry?: FactRetrieverRegistry; + factRetrieverRegistry?: FactRetrieverRegistryInterface; logger: Logger; config: Config; @@ -111,7 +114,7 @@ export const buildTechInsightsContext = async < tokenManager, } = options; - const buildFactRetrieverRegistry = () => { + const buildFactRetrieverRegistry = (): FactRetrieverRegistryInterface => { if (!options.factRetrieverRegistry) { if (!factRetrievers) { throw new Error(