@backstage/create-app 0.5.12-next.2 → 0.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,22 +0,0 @@
1
- import { CatalogClient } from '@backstage/catalog-client';
2
- import { createRouter } from '@backstage/plugin-scaffolder-backend';
3
- import { Router } from 'express';
4
- import type { PluginEnvironment } from '../types';
5
-
6
- export default async function createPlugin(
7
- env: PluginEnvironment,
8
- ): Promise<Router> {
9
- const catalogClient = new CatalogClient({
10
- discoveryApi: env.discovery,
11
- });
12
-
13
- return await createRouter({
14
- logger: env.logger,
15
- config: env.config,
16
- database: env.database,
17
- reader: env.reader,
18
- catalogClient,
19
- identity: env.identity,
20
- permissions: env.permissions,
21
- });
22
- }
@@ -1,66 +0,0 @@
1
- import { useHotCleanup } from '@backstage/backend-common';
2
- import { createRouter } from '@backstage/plugin-search-backend';
3
- import {
4
- IndexBuilder,
5
- LunrSearchEngine,
6
- } from '@backstage/plugin-search-backend-node';
7
- import { PluginEnvironment } from '../types';
8
- import { DefaultCatalogCollatorFactory } from '@backstage/plugin-search-backend-module-catalog';
9
- import { DefaultTechDocsCollatorFactory } from '@backstage/plugin-search-backend-module-techdocs';
10
- import { Router } from 'express';
11
-
12
- export default async function createPlugin(
13
- env: PluginEnvironment,
14
- ): Promise<Router> {
15
- // Initialize a connection to a search engine.
16
- const searchEngine = new LunrSearchEngine({
17
- logger: env.logger,
18
- });
19
- const indexBuilder = new IndexBuilder({
20
- logger: env.logger,
21
- searchEngine,
22
- });
23
-
24
- const schedule = env.scheduler.createScheduledTaskRunner({
25
- frequency: { minutes: 10 },
26
- timeout: { minutes: 15 },
27
- // A 3 second delay gives the backend server a chance to initialize before
28
- // any collators are executed, which may attempt requests against the API.
29
- initialDelay: { seconds: 3 },
30
- });
31
-
32
- // Collators are responsible for gathering documents known to plugins. This
33
- // collator gathers entities from the software catalog.
34
- indexBuilder.addCollator({
35
- schedule,
36
- factory: DefaultCatalogCollatorFactory.fromConfig(env.config, {
37
- discovery: env.discovery,
38
- tokenManager: env.tokenManager,
39
- }),
40
- });
41
-
42
- // collator gathers entities from techdocs.
43
- indexBuilder.addCollator({
44
- schedule,
45
- factory: DefaultTechDocsCollatorFactory.fromConfig(env.config, {
46
- discovery: env.discovery,
47
- logger: env.logger,
48
- tokenManager: env.tokenManager,
49
- }),
50
- });
51
-
52
- // The scheduler controls when documents are gathered from collators and sent
53
- // to the search engine for indexing.
54
- const { scheduler } = await indexBuilder.build();
55
- scheduler.start();
56
-
57
- useHotCleanup(module, () => scheduler.stop());
58
-
59
- return await createRouter({
60
- engine: indexBuilder.getSearchEngine(),
61
- types: indexBuilder.getDocumentTypes(),
62
- permissions: env.permissions,
63
- config: env.config,
64
- logger: env.logger,
65
- });
66
- }
@@ -1,51 +0,0 @@
1
- import { DockerContainerRunner } from '@backstage/backend-common';
2
- import {
3
- createRouter,
4
- Generators,
5
- Preparers,
6
- Publisher,
7
- } from '@backstage/plugin-techdocs-backend';
8
- import Docker from 'dockerode';
9
- import { Router } from 'express';
10
- import { PluginEnvironment } from '../types';
11
-
12
- export default async function createPlugin(
13
- env: PluginEnvironment,
14
- ): Promise<Router> {
15
- // Preparers are responsible for fetching source files for documentation.
16
- const preparers = await Preparers.fromConfig(env.config, {
17
- logger: env.logger,
18
- reader: env.reader,
19
- });
20
-
21
- // Docker client (conditionally) used by the generators, based on techdocs.generators config.
22
- const dockerClient = new Docker();
23
- const containerRunner = new DockerContainerRunner({ dockerClient });
24
-
25
- // Generators are used for generating documentation sites.
26
- const generators = await Generators.fromConfig(env.config, {
27
- logger: env.logger,
28
- containerRunner,
29
- });
30
-
31
- // Publisher is used for
32
- // 1. Publishing generated files to storage
33
- // 2. Fetching files from storage and passing them to TechDocs frontend.
34
- const publisher = await Publisher.fromConfig(env.config, {
35
- logger: env.logger,
36
- discovery: env.discovery,
37
- });
38
-
39
- // checks if the publisher is working and logs the result
40
- await publisher.getReadiness();
41
-
42
- return await createRouter({
43
- preparers,
44
- generators,
45
- publisher,
46
- logger: env.logger,
47
- config: env.config,
48
- discovery: env.discovery,
49
- cache: env.cache,
50
- });
51
- }