Use new interface

Signed-off-by: sblausten <sam@roadie.io>
This commit is contained in:
sblausten
2022-06-29 18:01:31 +02:00
parent 948d675442
commit f3d530bbe6
2 changed files with 17 additions and 5 deletions
@@ -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<string, FactRetrieverRegistration>();
export interface FactRetrieverRegistryInterface {
readonly retrievers: Map<string, FactRetrieverRegistration>;
register(registration: FactRetrieverRegistration): void;
get(retrieverReference: string): FactRetrieverRegistration;
listRetrievers(): FactRetriever[];
listRegistrations(): FactRetrieverRegistration[];
getSchemas(): FactSchema[];
}
export class FactRetrieverRegistry implements FactRetrieverRegistryInterface {
readonly retrievers = new Map<string, FactRetrieverRegistration>();
constructor(retrievers: FactRetrieverRegistration[]) {
retrievers.forEach(it => {
@@ -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<CheckType, CheckResultType>;
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(