feat(plugins/techdocs): add TechdocsGeneratorExtensionPoint
Signed-off-by: secustor <sebastian@poxhofer.at>
This commit is contained in:
@@ -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',
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user