Merge pull request #23280 from secustor/feat/allo-to-provide-custom-techdocs-generator

feat(plugins/techdocs): add TechdocsGeneratorExtensionPoint
This commit is contained in:
John Philip
2024-03-05 14:47:18 -05:00
committed by GitHub
6 changed files with 59 additions and 2 deletions
+10
View File
@@ -72,6 +72,7 @@ export class Generators implements GeneratorBuilder {
options: {
logger: Logger;
containerRunner: ContainerRunner;
customGenerator?: TechdocsGenerator;
},
): Promise<GeneratorBuilder>;
get(entity: Entity): GeneratorBase;
@@ -272,6 +273,15 @@ export class TechdocsGenerator implements GeneratorBase {
run(options: GeneratorRunOptions): Promise<void>;
}
// @public
export interface TechdocsGeneratorExtensionPoint {
// (undocumented)
setTechdocsGenerator(generator: TechdocsGenerator): void;
}
// @public
export const techdocsGeneratorExtensionPoint: ExtensionPoint<TechdocsGeneratorExtensionPoint>;
// @public
export type TechDocsMetadata = {
site_name: string;
+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',
});
+2
View File
@@ -25,5 +25,7 @@ export * from './helpers';
export * from './techdocsTypes';
export {
techdocsBuildsExtensionPoint,
techdocsGeneratorExtensionPoint,
type TechdocsBuildsExtensionPoint,
type TechdocsGeneratorExtensionPoint,
} 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;