clean up deprecations of techdocs-node plugin

Signed-off-by: Emma Indal <emma.indahl@gmail.com>
This commit is contained in:
Emma Indal
2022-03-14 14:03:24 +01:00
parent 7cb5788e9c
commit cb4f0e4f07
5 changed files with 35 additions and 41 deletions
+9 -13
View File
@@ -11,7 +11,7 @@ import { ContainerRunner } from '@backstage/backend-common';
import { Entity } from '@backstage/catalog-model';
import express from 'express';
import { IndexableDocument } from '@backstage/plugin-search-common';
import { Logger } from 'winston';
import { Logger as Logger_2 } from 'winston';
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { UrlReader } from '@backstage/backend-common';
@@ -19,8 +19,6 @@ import { Writable } from 'stream';
// @public
export class DirectoryPreparer implements PreparerBase {
// @deprecated
constructor(config: Config, _logger: Logger | null, reader: UrlReader);
static fromConfig(
config: Config,
{ logger, reader }: PreparerConfig,
@@ -45,7 +43,7 @@ export type GeneratorBuilder = {
// @public
export type GeneratorOptions = {
containerRunner: ContainerRunner;
logger: Logger;
logger: Logger_2;
};
// @public
@@ -54,7 +52,7 @@ export type GeneratorRunOptions = {
outputDir: string;
parsedLocationAnnotation?: ParsedLocationAnnotation;
etag?: string;
logger: Logger;
logger: Logger_2;
logStream?: Writable;
};
@@ -63,7 +61,7 @@ export class Generators implements GeneratorBuilder {
static fromConfig(
config: Config,
options: {
logger: Logger;
logger: Logger_2;
containerRunner: ContainerRunner;
},
): Promise<GeneratorBuilder>;
@@ -78,7 +76,7 @@ export const getDocFilesFromRepository: (
opts?:
| {
etag?: string | undefined;
logger?: Logger | undefined;
logger?: Logger_2 | undefined;
}
| undefined,
) => Promise<PreparerResponse>;
@@ -120,13 +118,13 @@ export type PreparerBuilder = {
// @public
export type PreparerConfig = {
logger: Logger;
logger: Logger_2;
reader: UrlReader;
};
// @public
export type PreparerOptions = {
logger?: Logger;
logger?: Logger_2;
etag?: ETag;
};
@@ -168,7 +166,7 @@ export interface PublisherBase {
// @public
export type PublisherFactory = {
logger: Logger;
logger: Logger_2;
discovery: PluginEndpointDiscovery;
};
@@ -216,7 +214,7 @@ export interface TechDocsDocument extends IndexableDocument {
// @public
export class TechdocsGenerator implements GeneratorBase {
constructor(options: {
logger: Logger;
logger: Logger_2;
containerRunner: ContainerRunner;
config: Config;
scmIntegrations: ScmIntegrationRegistry;
@@ -250,8 +248,6 @@ export const transformDirLocation: (
// @public
export class UrlPreparer implements PreparerBase {
// @deprecated
constructor(reader: UrlReader, logger: Logger);
static fromConfig({ reader, logger }: PreparerConfig): UrlPreparer;
prepare(entity: Entity, options?: PreparerOptions): Promise<PreparerResponse>;
}
@@ -52,11 +52,10 @@ const mockUrlReader: jest.Mocked<UrlReader> = {
describe('directory preparer', () => {
it('should merge managed-by-location and techdocs-ref when techdocs-ref is relative', async () => {
const directoryPreparer = new DirectoryPreparer(
mockConfig,
const directoryPreparer = DirectoryPreparer.fromConfig(mockConfig, {
logger,
mockUrlReader,
);
reader: mockUrlReader,
});
const mockEntity = createMockEntity({
'backstage.io/managed-by-location':
@@ -69,11 +68,10 @@ describe('directory preparer', () => {
});
it('should reject when techdocs-ref is absolute', async () => {
const directoryPreparer = new DirectoryPreparer(
mockConfig,
const directoryPreparer = DirectoryPreparer.fromConfig(mockConfig, {
logger,
mockUrlReader,
);
reader: mockUrlReader,
});
const mockEntity = createMockEntity({
'backstage.io/managed-by-location':
@@ -87,11 +85,10 @@ describe('directory preparer', () => {
});
it('should reject when managed-by-location has an unknown type', async () => {
const directoryPreparer = new DirectoryPreparer(
mockConfig,
const directoryPreparer = DirectoryPreparer.fromConfig(mockConfig, {
logger,
mockUrlReader,
);
reader: mockUrlReader,
});
const mockEntity = createMockEntity({
'backstage.io/managed-by-location':
@@ -39,12 +39,6 @@ export class DirectoryPreparer implements PreparerBase {
private readonly scmIntegrations: ScmIntegrationRegistry;
private readonly reader: UrlReader;
/** @deprecated use static fromConfig method instead */
constructor(config: Config, _logger: Logger | null, reader: UrlReader) {
this.reader = reader;
this.scmIntegrations = ScmIntegrations.fromConfig(config);
}
/**
* Returns a directory preparer instance
* @param config - A backstage config
@@ -57,6 +51,15 @@ export class DirectoryPreparer implements PreparerBase {
return new DirectoryPreparer(config, logger, reader);
}
private constructor(
config: Config,
_logger: Logger | null,
reader: UrlReader,
) {
this.reader = reader;
this.scmIntegrations = ScmIntegrations.fromConfig(config);
}
/** {@inheritDoc PreparerBase.prepare} */
async prepare(
entity: Entity,
@@ -44,18 +44,17 @@ export class Preparers implements PreparerBuilder {
): Promise<PreparerBuilder> {
const preparers = new Preparers();
const urlPreparer = new UrlPreparer(reader, logger);
const urlPreparer = UrlPreparer.fromConfig({ reader, logger });
preparers.register('url', urlPreparer);
/**
* Dir preparer is a syntactic sugar for users to define techdocs-ref annotation.
* When using dir preparer, the docs will be fetched using URL Reader.
*/
const directoryPreparer = new DirectoryPreparer(
backstageConfig,
const directoryPreparer = DirectoryPreparer.fromConfig(backstageConfig, {
logger,
reader,
);
});
preparers.register('dir', directoryPreparer);
return preparers;
@@ -34,12 +34,6 @@ export class UrlPreparer implements PreparerBase {
private readonly logger: Logger;
private readonly reader: UrlReader;
/** @deprecated use static fromConfig method instead */
constructor(reader: UrlReader, logger: Logger) {
this.logger = logger;
this.reader = reader;
}
/**
* Returns a directory preparer instance
* @param config - A URL preparer config containing the a logger and reader
@@ -48,6 +42,11 @@ export class UrlPreparer implements PreparerBase {
return new UrlPreparer(reader, logger);
}
private constructor(reader: UrlReader, logger: Logger) {
this.logger = logger;
this.reader = reader;
}
/** {@inheritDoc PreparerBase.prepare} */
async prepare(
entity: Entity,