Skip to content

Commit

Permalink
create-app: Update techdocs-backend, add changesets
Browse files Browse the repository at this point in the history
  • Loading branch information
OrkoHunter committed Dec 17, 2020
1 parent 2ac77ae commit a8573e5
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 15 deletions.
6 changes: 6 additions & 0 deletions .changeset/curly-emus-own.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@backstage/create-app': patch
---

techdocs-backend: Simplified file, removing individual preparers and generators.
techdocs-backend: UrlReader is now available to use in preparers.
36 changes: 36 additions & 0 deletions .changeset/thirty-papayas-attack.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
'@backstage/techdocs-common': minor
'@backstage/plugin-techdocs-backend': minor
---

In your Backstage app, `packages/backend/plugins/techdocs.ts` file has now been simplified,
to remove registering individual preparers and generators.

Please update the file when upgrading the version of `@backstage/plugin-techdocs-backend` package.

```typescript
const preparers = await Preparers.fromConfig(config, {
logger,
reader,
});

const generators = await Generators.fromConfig(config, {
logger,
});

const publisher = await Publisher.fromConfig(config, {
logger,
discovery,
});
```

You should be able to remove unnecessary imports, and just do

```typescript
import {
createRouter,
Preparers,
Generators,
Publisher,
} from '@backstage/plugin-techdocs-backend';
```
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import {
createRouter,
DirectoryPreparer,
Preparers,
Generators,
TechdocsGenerator,
CommonGitPreparer,
Publisher,
} from '@backstage/plugin-techdocs-backend';
import { PluginEnvironment } from '../types';
Expand All @@ -14,22 +11,28 @@ export default async function createPlugin({
logger,
config,
discovery,
reader,
}: PluginEnvironment) {
const generators = new Generators();
const techdocsGenerator = new TechdocsGenerator(logger, config);

generators.register('techdocs', techdocsGenerator);

const preparers = new Preparers();
const directoryPreparer = new DirectoryPreparer(logger);
const commonGitPreparer = new CommonGitPreparer(logger);
// Preparers are responsible for fetching source files for documentation.
const preparers = await Preparers.fromConfig(config, {
logger,
reader,
});

preparers.register('dir', directoryPreparer);
preparers.register('github', commonGitPreparer);
preparers.register('gitlab', commonGitPreparer);
// Generators are used for generating documentation sites.
const generators = await Generators.fromConfig(config, {
logger,
});

const publisher = Publisher.fromConfig(config, logger, discovery);
// Publisher is used for
// 1. Publishing generated files to storage
// 2. Fetching files from storage and passing them to TechDocs frontend.
const publisher = await Publisher.fromConfig(config, {
logger,
discovery,
});

// Docker client (conditionally) used by the generators, based on techdocs.generators config.
const dockerClient = new Docker();

return await createRouter({
Expand Down

0 comments on commit a8573e5

Please sign in to comment.