From 19781483a257f2938f9781513fb04aaeba25bc30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 8 Jun 2022 13:32:52 +0200 Subject: [PATCH] fixup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/tame-ears-pretend.md | 5 +++++ .../FetchApi/PluginProtocolResolverFetchMiddleware.ts | 9 ++++++++- plugins/techdocs-node/api-report.md | 10 ++++------ 3 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 .changeset/tame-ears-pretend.md diff --git a/.changeset/tame-ears-pretend.md b/.changeset/tame-ears-pretend.md new file mode 100644 index 0000000000..63a81cbf06 --- /dev/null +++ b/.changeset/tame-ears-pretend.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-app-api': patch +--- + +Handle URLs as the first argument to `fetchApi`, when using the `plugin:` protocol diff --git a/packages/core-app-api/src/apis/implementations/FetchApi/PluginProtocolResolverFetchMiddleware.ts b/packages/core-app-api/src/apis/implementations/FetchApi/PluginProtocolResolverFetchMiddleware.ts index 6265e8d3d2..ff20b594b4 100644 --- a/packages/core-app-api/src/apis/implementations/FetchApi/PluginProtocolResolverFetchMiddleware.ts +++ b/packages/core-app-api/src/apis/implementations/FetchApi/PluginProtocolResolverFetchMiddleware.ts @@ -55,7 +55,14 @@ export class PluginProtocolResolverFetchMiddleware implements FetchMiddleware { } const target = `${join(base, pathname)}${search}${hash}`; - return next(target, typeof input === 'string' ? init : input); + return next( + target, + typeof input === 'string' || isUrl(input) ? init : input, + ); }; } } + +function isUrl(a: unknown): a is URL { + return typeof a === 'object' && a?.constructor === URL; +} diff --git a/plugins/techdocs-node/api-report.md b/plugins/techdocs-node/api-report.md index c584dec40c..cc9bc8eb51 100644 --- a/plugins/techdocs-node/api-report.md +++ b/plugins/techdocs-node/api-report.md @@ -73,12 +73,10 @@ export class Generators implements GeneratorBuilder { export const getDocFilesFromRepository: ( reader: UrlReader, entity: Entity, - opts?: - | { - etag?: string | undefined; - logger?: Logger | undefined; - } - | undefined, + opts?: { + etag?: string; + logger?: Logger; + }, ) => Promise; // @public