feat(plugins/techdocs): add TechdocsGeneratorExtensionPoint

Signed-off-by: secustor <sebastian@poxhofer.at>
This commit is contained in:
secustor
2024-02-27 11:42:31 +01:00
parent f750e51e78
commit 718b734433
5 changed files with 48 additions and 2 deletions
+20
View File
@@ -15,6 +15,7 @@
*/
import { createExtensionPoint } from '@backstage/backend-plugin-api';
import { DocsBuildStrategy } from './techdocsTypes';
import { TechdocsGenerator } from './stages';
/**
* Extension point type for configuring Techdocs builds.
@@ -34,3 +35,22 @@ export const techdocsBuildsExtensionPoint =
createExtensionPoint<TechdocsBuildsExtensionPoint>({
id: 'techdocs.builds',
});
/**
* Extension point type for configuring a custom Techdocs generator
*
* @public
*/
export interface TechdocsGeneratorExtensionPoint {
setTechdocsGenerator(generator: TechdocsGenerator): void;
}
/**
* Extension point for configuring a custom Techdocs generator
*
* @public
*/
export const techdocsGeneratorExtensionPoint =
createExtensionPoint<TechdocsGeneratorExtensionPoint>({
id: 'techdocs.generator',
});
+1
View File
@@ -25,5 +25,6 @@ export * from './helpers';
export * from './techdocsTypes';
export {
techdocsBuildsExtensionPoint,
techdocsGeneratorExtensionPoint,
type TechdocsBuildsExtensionPoint,
} from './extensions';
@@ -40,11 +40,16 @@ export class Generators implements GeneratorBuilder {
*/
static async fromConfig(
config: Config,
options: { logger: Logger; containerRunner: ContainerRunner },
options: {
logger: Logger;
containerRunner: ContainerRunner;
customGenerator?: TechdocsGenerator;
},
): Promise<GeneratorBuilder> {
const generators = new Generators();
const techdocsGenerator = TechdocsGenerator.fromConfig(config, options);
const techdocsGenerator =
options.customGenerator ?? TechdocsGenerator.fromConfig(config, options);
generators.register('techdocs', techdocsGenerator);
return generators;