From e6a6f2f264fe542a11cc82f5b6217ec589761a9c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 3 Oct 2020 16:39:36 +0200 Subject: [PATCH] backend-common: refactor reader types --- .../src/reading/AzureUrlReader.ts | 3 +-- .../src/reading/BitbucketUrlReader.ts | 3 +-- .../src/reading/GithubUrlReader.ts | 3 +-- .../src/reading/GitlabUrlReader.ts | 3 +-- .../src/reading/UrlReaderPredicateMux.ts | 9 +-------- .../backend-common/src/reading/UrlReaders.ts | 20 ++----------------- packages/backend-common/src/reading/types.ts | 17 ++++++++++++++++ 7 files changed, 24 insertions(+), 34 deletions(-) diff --git a/packages/backend-common/src/reading/AzureUrlReader.ts b/packages/backend-common/src/reading/AzureUrlReader.ts index aba4839c34..28fbf25eea 100644 --- a/packages/backend-common/src/reading/AzureUrlReader.ts +++ b/packages/backend-common/src/reading/AzureUrlReader.ts @@ -17,8 +17,7 @@ import fetch, { RequestInit, HeadersInit, Response } from 'node-fetch'; import { Config } from '@backstage/config'; import { NotFoundError } from '../errors'; -import { UrlReader } from './types'; -import { ReaderFactory } from './UrlReaders'; +import { ReaderFactory, UrlReader } from './types'; type Options = { // TODO: added here for future support, but we only allow dev.azure.com for now diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.ts b/packages/backend-common/src/reading/BitbucketUrlReader.ts index 3b5301af59..e2576eed47 100644 --- a/packages/backend-common/src/reading/BitbucketUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketUrlReader.ts @@ -16,8 +16,7 @@ import fetch, { RequestInit, HeadersInit, Response } from 'node-fetch'; import { Config } from '@backstage/config'; -import { ReaderFactory } from './UrlReaders'; -import { UrlReader } from './types'; +import { ReaderFactory, UrlReader } from './types'; import { NotFoundError } from '../errors'; type Options = { diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts index 7a68890b00..e5bed6dd26 100644 --- a/packages/backend-common/src/reading/GithubUrlReader.ts +++ b/packages/backend-common/src/reading/GithubUrlReader.ts @@ -18,8 +18,7 @@ import { Config } from '@backstage/config'; import parseGitUri from 'git-url-parse'; import fetch, { HeadersInit, RequestInit, Response } from 'node-fetch'; import { NotFoundError } from '../errors'; -import { UrlReader } from './types'; -import { ReaderFactory } from './UrlReaders'; +import { ReaderFactory, UrlReader } from './types'; /** * The configuration parameters for a single GitHub API provider. diff --git a/packages/backend-common/src/reading/GitlabUrlReader.ts b/packages/backend-common/src/reading/GitlabUrlReader.ts index 13c4e28b07..0e430d650c 100644 --- a/packages/backend-common/src/reading/GitlabUrlReader.ts +++ b/packages/backend-common/src/reading/GitlabUrlReader.ts @@ -17,8 +17,7 @@ import fetch, { RequestInit, Response } from 'node-fetch'; import { Config } from '@backstage/config'; import { NotFoundError } from '../errors'; -import { UrlReader } from './types'; -import { ReaderFactory } from './UrlReaders'; +import { ReaderFactory, UrlReader } from './types'; type Options = { host: string; diff --git a/packages/backend-common/src/reading/UrlReaderPredicateMux.ts b/packages/backend-common/src/reading/UrlReaderPredicateMux.ts index 098fb77edc..7654cc8aac 100644 --- a/packages/backend-common/src/reading/UrlReaderPredicateMux.ts +++ b/packages/backend-common/src/reading/UrlReaderPredicateMux.ts @@ -14,14 +14,7 @@ * limitations under the License. */ -import { UrlReader } from './types'; - -export type UrlReaderPredicate = (url: URL) => boolean; - -export type UrlReaderPredicateTuple = { - predicate: UrlReaderPredicate; - reader: UrlReader; -}; +import { UrlReader, UrlReaderPredicateTuple } from './types'; type Options = { // UrlReader to fall back to if no other reader is matched diff --git a/packages/backend-common/src/reading/UrlReaders.ts b/packages/backend-common/src/reading/UrlReaders.ts index f27bfea0a3..89bd672ce7 100644 --- a/packages/backend-common/src/reading/UrlReaders.ts +++ b/packages/backend-common/src/reading/UrlReaders.ts @@ -16,30 +16,14 @@ import { Logger } from 'winston'; import { Config } from '@backstage/config'; -import { UrlReader } from './types'; -import { - UrlReaderPredicateMux, - UrlReaderPredicateTuple, -} from './UrlReaderPredicateMux'; +import { ReaderFactory, UrlReader } from './types'; +import { UrlReaderPredicateMux } from './UrlReaderPredicateMux'; import { AzureUrlReader } from './AzureUrlReader'; import { BitbucketUrlReader } from './BitbucketUrlReader'; import { GithubUrlReader } from './GithubUrlReader'; import { GitlabUrlReader } from './GitlabUrlReader'; import { FetchUrlReader } from './FetchUrlReader'; -export type ReaderFactoryOptions = { - config: Config; - logger: Logger; -}; - -/** - * A factory function that can read config to construct zero or more - * UrlReaders along with a predicate for when it should be used. - */ -export type ReaderFactory = ( - options: ReaderFactoryOptions, -) => UrlReaderPredicateTuple[]; - /** * UrlReaders provide various utilities related to the UrlReader interface. */ diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-common/src/reading/types.ts index 9b29d1c45d..e423db3eca 100644 --- a/packages/backend-common/src/reading/types.ts +++ b/packages/backend-common/src/reading/types.ts @@ -14,9 +14,26 @@ * limitations under the License. */ +import { Logger } from 'winston'; +import { Config } from '@backstage/config'; + /** * A generic interface for fetching plain data from URLs. */ export type UrlReader = { read(url: string): Promise; }; + +export type UrlReaderPredicateTuple = { + predicate: (url: URL) => boolean; + reader: UrlReader; +}; + +/** + * A factory function that can read config to construct zero or more + * UrlReaders along with a predicate for when it should be used. + */ +export type ReaderFactory = (options: { + config: Config; + logger: Logger; +}) => UrlReaderPredicateTuple[];