@@ -25,5 +25,6 @@ export type {
|
||||
|
||||
export type { PersistenceContext } from './service/persistence/persistenceContext';
|
||||
export { createFactRetrieverRegistration } from './service/fact/createFactRetriever';
|
||||
export type { FactRetrieverRegistry } from './service/fact/FactRetrieverRegistry';
|
||||
export type { FactRetrieverRegistrationOptions } from './service/fact/createFactRetriever';
|
||||
export * from './service/fact/factRetrievers';
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
} from '@backstage/plugin-tech-insights-node';
|
||||
import { ConflictError, NotFoundError } from '@backstage/errors';
|
||||
|
||||
export interface FactRetrieverRegistryInterface {
|
||||
export interface FactRetrieverRegistry {
|
||||
readonly retrievers: Map<string, FactRetrieverRegistration>;
|
||||
register(registration: FactRetrieverRegistration): void;
|
||||
get(retrieverReference: string): FactRetrieverRegistration;
|
||||
@@ -30,7 +30,7 @@ export interface FactRetrieverRegistryInterface {
|
||||
getSchemas(): FactSchema[];
|
||||
}
|
||||
|
||||
export class FactRetrieverRegistry implements FactRetrieverRegistryInterface {
|
||||
export class DefaultFactRetrieverRegistry implements FactRetrieverRegistry {
|
||||
readonly retrievers = new Map<string, FactRetrieverRegistration>();
|
||||
|
||||
constructor(retrievers: FactRetrieverRegistration[]) {
|
||||
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
} from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { TaskScheduler } from '@backstage/backend-tasks';
|
||||
import { FactRetrieverRegistry } from './fact/FactRetrieverRegistry';
|
||||
import { DefaultFactRetrieverRegistry } from './fact/FactRetrieverRegistry';
|
||||
|
||||
jest.mock('./fact/FactRetrieverRegistry');
|
||||
|
||||
@@ -41,7 +41,7 @@ describe('buildTechInsightsContext', () => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('constructs the default FactRetrieverRegistry if factRetrievers but no factRetrieverRegistry are passed in', () => {
|
||||
it('constructs the default FactRetrieverRegistry if factRetrievers but no factRetrieverRegistry are passed', () => {
|
||||
buildTechInsightsContext({
|
||||
database: pluginDatabase,
|
||||
logger: getVoidLogger(),
|
||||
@@ -52,11 +52,11 @@ describe('buildTechInsightsContext', () => {
|
||||
tokenManager: ServerTokenManager.noop(),
|
||||
});
|
||||
|
||||
expect(FactRetrieverRegistry).toHaveBeenCalledTimes(1);
|
||||
expect(DefaultFactRetrieverRegistry).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('uses factRetrieverRegistry implementation instead of the default FactRetrieverRegistry if it is passed in', () => {
|
||||
const factRetrieverRegistryMock = {} as FactRetrieverRegistry;
|
||||
const factRetrieverRegistryMock = {} as DefaultFactRetrieverRegistry;
|
||||
|
||||
buildTechInsightsContext({
|
||||
database: pluginDatabase,
|
||||
@@ -69,6 +69,6 @@ describe('buildTechInsightsContext', () => {
|
||||
tokenManager: ServerTokenManager.noop(),
|
||||
});
|
||||
|
||||
expect(FactRetrieverRegistry).not.toHaveBeenCalled();
|
||||
expect(DefaultFactRetrieverRegistry).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
import { FactRetrieverEngine } from './fact/FactRetrieverEngine';
|
||||
import { Logger } from 'winston';
|
||||
import {
|
||||
DefaultFactRetrieverRegistry,
|
||||
FactRetrieverRegistry,
|
||||
FactRetrieverRegistryInterface,
|
||||
} from './fact/FactRetrieverRegistry';
|
||||
import { Config } from '@backstage/config';
|
||||
import {
|
||||
@@ -62,7 +62,7 @@ export interface TechInsightsOptions<
|
||||
*/
|
||||
factCheckerFactory?: FactCheckerFactory<CheckType, CheckResultType>;
|
||||
|
||||
factRetrieverRegistry?: FactRetrieverRegistryInterface;
|
||||
factRetrieverRegistry?: FactRetrieverRegistry;
|
||||
|
||||
logger: Logger;
|
||||
config: Config;
|
||||
@@ -114,14 +114,14 @@ export const buildTechInsightsContext = async <
|
||||
tokenManager,
|
||||
} = options;
|
||||
|
||||
const buildFactRetrieverRegistry = (): FactRetrieverRegistryInterface => {
|
||||
const buildFactRetrieverRegistry = (): FactRetrieverRegistry => {
|
||||
if (!options.factRetrieverRegistry) {
|
||||
if (!factRetrievers) {
|
||||
throw new Error(
|
||||
'Failed to build FactRetrieverRegistry because no factRetrievers found',
|
||||
);
|
||||
}
|
||||
return new FactRetrieverRegistry(factRetrievers);
|
||||
return new DefaultFactRetrieverRegistry(factRetrievers);
|
||||
}
|
||||
return options.factRetrieverRegistry;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user