TechDocs: Use discovery instead of config to read base url

This commit is contained in:
Himanshu Mishra
2020-11-17 21:03:56 +01:00
parent c01bf361a4
commit 3b314807c6
6 changed files with 32 additions and 23 deletions
+1 -1
View File
@@ -50,7 +50,7 @@ export default async function createPlugin({
const urlPreparer = new UrlPreparer(reader, logger);
preparers.register('url', urlPreparer);
const publisher = new LocalPublish(logger, config);
const publisher = new LocalPublish(logger, discovery);
const dockerClient = new Docker();
+1
View File
@@ -23,6 +23,7 @@
"@backstage/backend-common": "^0.2.0",
"@backstage/catalog-model": "^0.2.0",
"@backstage/config": "^0.1.1",
"@backstage/core-api": "^0.2.1",
"@types/dockerode": "^2.5.34",
"@types/express": "^4.17.6",
"command-exists-promise": "^2.0.2",
@@ -53,7 +53,7 @@ export async function startStandaloneServer(
const techdocsGenerator = new TechdocsGenerator(logger, config);
generators.register('techdocs', techdocsGenerator);
const publisher = new LocalPublish(logger, config);
const publisher = new LocalPublish(logger, discovery);
const dockerClient = new Docker();
@@ -17,7 +17,7 @@
/* eslint-disable no-restricted-syntax */
import fs from 'fs-extra';
import path from 'path';
import { getVoidLogger } from '@backstage/backend-common';
import { getVoidLogger, SingleHostDiscovery } from '@backstage/backend-common';
import { ConfigReader } from '@backstage/config';
import { LocalPublish } from './local';
@@ -38,8 +38,21 @@ const logger = getVoidLogger();
describe('local publisher', () => {
it('should publish generated documentation dir', async () => {
const testConfig = ConfigReader.fromConfigs([{ context: '', data: {} }]);
const publisher = new LocalPublish(logger, testConfig);
const testConfig = ConfigReader.fromConfigs([
{
context: '',
data: {
backend: {
baseUrl: 'http://localhost:7000',
listen: {
port: 7000,
},
},
},
},
]);
const testDiscovery = SingleHostDiscovery.fromConfig(testConfig);
const publisher = new LocalPublish(logger, testDiscovery);
const mockEntity = createMockEntity();
@@ -18,15 +18,15 @@ import { Logger } from 'winston';
import { Entity } from '@backstage/catalog-model';
import { PublisherBase } from './types';
import { resolvePackagePath } from '@backstage/backend-common';
import { Config } from '@backstage/config';
import { DiscoveryApi } from '@backstage/core-api';
export class LocalPublish implements PublisherBase {
private readonly logger: Logger;
private readonly config: Config;
private readonly discoveryApi: DiscoveryApi;
constructor(logger: Logger, config: Config) {
constructor(logger: Logger, discoveryApi: DiscoveryApi) {
this.logger = logger;
this.config = config;
this.discoveryApi = discoveryApi;
}
publish({
@@ -66,9 +66,10 @@ export class LocalPublish implements PublisherBase {
reject(err);
}
const backendBaseUrl = this.config.getString('backend.baseUrl');
resolve({
remoteUrl: `${backendBaseUrl}/api/techdocs/static/docs/${entity.metadata.name}`,
this.discoveryApi.getBaseUrl('techdocs').then(techdocsApiUrl => {
resolve({
remoteUrl: `${techdocsApiUrl}/static/docs/${entity.metadata.name}`,
});
});
});
});
+5 -11
View File
@@ -1290,40 +1290,34 @@
to-fast-properties "^2.0.0"
"@backstage/core@^0.2.0":
version "0.3.0"
version "0.2.0"
resolved "https://registry.npmjs.org/@backstage/core/-/core-0.2.0.tgz#543246b2d87563c9aa4d9fb96e40fdfc7e827520"
integrity sha512-75m2u3FoUngBOvt9l65xZcYTzzB+49OXpY1A9VNFUR1+jMs3cL/0HDfByQV2H0xXaHzMngQ8C5u/sWhkQsij1w==
dependencies:
"@backstage/config" "^0.1.1"
"@backstage/core-api" "^0.2.1"
"@backstage/theme" "^0.2.1"
"@backstage/core-api" "^0.2.0"
"@backstage/theme" "^0.2.0"
"@material-ui/core" "^4.11.0"
"@material-ui/icons" "^4.9.1"
"@material-ui/lab" "4.0.0-alpha.45"
"@types/dagre" "^0.7.44"
"@types/react" "^16.9"
"@types/react-sparklines" "^1.7.0"
classnames "^2.2.6"
clsx "^1.1.0"
d3-selection "^2.0.0"
d3-shape "^2.0.0"
d3-zoom "^2.0.0"
dagre "^0.8.5"
immer "^7.0.9"
lodash "^4.17.15"
material-table "^1.69.1"
prop-types "^15.7.2"
qs "^6.9.4"
rc-progress "^3.0.0"
react "^16.12.0"
react-dom "^16.12.0"
react-helmet "6.1.0"
react-hook-form "^6.6.0"
react-markdown "^5.0.2"
react-router "6.0.0-beta.0"
react-router-dom "6.0.0-beta.0"
react-sparklines "^1.7.0"
react-syntax-highlighter "^13.5.1"
react-use "^15.3.3"
remark-gfm "^1.0.0"
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"