diff --git a/.changeset/two-jars-melt.md b/.changeset/two-jars-melt.md index d6f0166885..2789157065 100644 --- a/.changeset/two-jars-melt.md +++ b/.changeset/two-jars-melt.md @@ -3,4 +3,4 @@ '@backstage/plugin-techdocs-node': minor --- -Expose an extension point to set a custom build strategy and move `DocsBuildStrategy` and `ShouldBuildParameters` types to `@backstage/plugin-techdocs-node` +Expose an extension point to set a custom build strategy. Also move `DocsBuildStrategy` type to `@backstage/plugin-techdocs-node` and deprecate `ShouldBuildParameters` type. diff --git a/plugins/techdocs-backend/api-report.md b/plugins/techdocs-backend/api-report.md index e449ddc459..9e9a42c388 100644 --- a/plugins/techdocs-backend/api-report.md +++ b/plugins/techdocs-backend/api-report.md @@ -8,6 +8,7 @@ import { CatalogClient } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { DefaultTechDocsCollatorFactory as DefaultTechDocsCollatorFactory_2 } from '@backstage/plugin-search-backend-module-techdocs'; import { DocsBuildStrategy as DocsBuildStrategy_2 } from '@backstage/plugin-techdocs-node'; +import { Entity } from '@backstage/catalog-model'; import express from 'express'; import { GeneratorBuilder } from '@backstage/plugin-techdocs-node'; import { Knex } from 'knex'; @@ -17,7 +18,6 @@ import { PluginCacheManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PreparerBuilder } from '@backstage/plugin-techdocs-node'; import { PublisherBase } from '@backstage/plugin-techdocs-node'; -import { ShouldBuildParameters as ShouldBuildParameters_2 } from '@backstage/plugin-techdocs-node'; import type { TechDocsCollatorFactoryOptions as TechDocsCollatorFactoryOptions_2 } from '@backstage/plugin-search-backend-module-techdocs'; import { TechDocsDocument as TechDocsDocument_2 } from '@backstage/plugin-techdocs-node'; import { TokenManager } from '@backstage/backend-common'; @@ -85,7 +85,9 @@ export type RouterOptions = | OutOfTheBoxDeploymentOptions; // @public @deprecated (undocumented) -export type ShouldBuildParameters = ShouldBuildParameters_2; +export type ShouldBuildParameters = { + entity: Entity; +}; // @public @deprecated (undocumented) export type TechDocsCollatorFactoryOptions = TechDocsCollatorFactoryOptions_2; diff --git a/plugins/techdocs-backend/src/index.ts b/plugins/techdocs-backend/src/index.ts index f9634528f9..6dc68a4d44 100644 --- a/plugins/techdocs-backend/src/index.ts +++ b/plugins/techdocs-backend/src/index.ts @@ -20,9 +20,9 @@ * @packageDocumentation */ +import { Entity } from '@backstage/catalog-model'; import { DocsBuildStrategy as _DocsBuildStrategy, - ShouldBuildParameters as _ShouldBuildParameters, TechDocsDocument as _TechDocsDocument, } from '@backstage/plugin-techdocs-node'; @@ -49,9 +49,11 @@ export type { export type DocsBuildStrategy = _DocsBuildStrategy; /** * @public - * @deprecated import from `@backstage/plugin-techdocs-node` instead + * @deprecated use direct type definition instead */ -export type ShouldBuildParameters = _ShouldBuildParameters; +export type ShouldBuildParameters = { + entity: Entity; +}; /** * @public * @deprecated import from `@backstage/plugin-techdocs-node` instead diff --git a/plugins/techdocs-backend/src/service/DefaultDocsBuildStrategy.ts b/plugins/techdocs-backend/src/service/DefaultDocsBuildStrategy.ts index fe0f5206ba..bc2c586c82 100644 --- a/plugins/techdocs-backend/src/service/DefaultDocsBuildStrategy.ts +++ b/plugins/techdocs-backend/src/service/DefaultDocsBuildStrategy.ts @@ -13,11 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { Entity } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; -import { - DocsBuildStrategy, - ShouldBuildParameters, -} from '@backstage/plugin-techdocs-node'; +import { DocsBuildStrategy } from '@backstage/plugin-techdocs-node'; export class DefaultDocsBuildStrategy implements DocsBuildStrategy { private readonly config: Config; @@ -30,7 +28,7 @@ export class DefaultDocsBuildStrategy implements DocsBuildStrategy { return new DefaultDocsBuildStrategy(config); } - async shouldBuild(_: ShouldBuildParameters): Promise { + async shouldBuild(_: { entity: Entity }): Promise { return this.config.getString('techdocs.builder') === 'local'; } } diff --git a/plugins/techdocs-node/api-report.md b/plugins/techdocs-node/api-report.md index 3ce422cbc5..c267574642 100644 --- a/plugins/techdocs-node/api-report.md +++ b/plugins/techdocs-node/api-report.md @@ -28,7 +28,7 @@ export class DirectoryPreparer implements PreparerBase { // @public export interface DocsBuildStrategy { // (undocumented) - shouldBuild(params: ShouldBuildParameters): Promise; + shouldBuild(params: { entity: Entity }): Promise; } // @public @@ -233,11 +233,6 @@ export type ReadinessResponse = { // @public export type RemoteProtocol = 'url' | 'dir'; -// @public -export type ShouldBuildParameters = { - entity: Entity; -}; - // @public export type SupportedGeneratorKey = 'techdocs' | string; diff --git a/plugins/techdocs-node/src/techdocsTypes.ts b/plugins/techdocs-node/src/techdocsTypes.ts index 6fc3ffc65f..6a5ee522e1 100644 --- a/plugins/techdocs-node/src/techdocsTypes.ts +++ b/plugins/techdocs-node/src/techdocsTypes.ts @@ -48,20 +48,11 @@ export interface TechDocsDocument extends IndexableDocument { path: string; } -/** - * Parameters passed to the shouldBuild method on the DocsBuildStrategy interface - * - * @public - */ -export type ShouldBuildParameters = { - entity: Entity; -}; - /** * A strategy for when to build TechDocs locally, and when to skip building TechDocs (allowing for an external build) * * @public */ export interface DocsBuildStrategy { - shouldBuild(params: ShouldBuildParameters): Promise; + shouldBuild(params: { entity: Entity }): Promise; }