@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user