From b7db436113774855800cae92b424a827edaedece Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Tue, 28 May 2024 18:49:35 +0200 Subject: [PATCH] update pr comments Signed-off-by: Alex Eftimie --- plugins/scaffolder/src/api.ts | 3 +++ plugins/techdocs/api-report.md | 3 ++- plugins/techdocs/src/client.ts | 13 ++++++++++--- plugins/techdocs/src/plugin.ts | 8 +------- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts index 25f76c029a..6ef5fff588 100644 --- a/plugins/scaffolder/src/api.ts +++ b/plugins/scaffolder/src/api.ts @@ -245,8 +245,10 @@ export class ScaffolderClient implements ScaffolderApi { } }; + const ctrl = new AbortController(); fetchEventSource(url, { fetch: this.fetchApi.fetch, + signal: ctrl.signal, onmessage(e: EventSourceMessage) { if (e.event === 'log') { processEvent(e); @@ -254,6 +256,7 @@ export class ScaffolderClient implements ScaffolderApi { } else if (e.event === 'completion') { processEvent(e); subscriber.complete(); + ctrl.abort(); return; } processEvent(e); diff --git a/plugins/techdocs/api-report.md b/plugins/techdocs/api-report.md index b756bc0ab0..ebd6adcd3c 100644 --- a/plugins/techdocs/api-report.md +++ b/plugins/techdocs/api-report.md @@ -14,6 +14,7 @@ import { DiscoveryApi } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { EntityOwnerPickerProps } from '@backstage/plugin-catalog-react'; import { FetchApi } from '@backstage/core-plugin-api'; +import { IdentityApi } from '@backstage/core-plugin-api'; import { JSX as JSX_2 } from 'react'; import { PropsWithChildren } from 'react'; import { default as React_2 } from 'react'; @@ -465,7 +466,7 @@ export class TechDocsStorageClient implements TechDocsStorageApi_2 { configApi: Config; discoveryApi: DiscoveryApi; fetchApi: FetchApi; - identityApi?: any; + identityApi?: IdentityApi; }); // (undocumented) configApi: Config; diff --git a/plugins/techdocs/src/client.ts b/plugins/techdocs/src/client.ts index 06362825a1..d00be2a01f 100644 --- a/plugins/techdocs/src/client.ts +++ b/plugins/techdocs/src/client.ts @@ -16,7 +16,11 @@ import { CompoundEntityRef } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; -import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; +import { + DiscoveryApi, + FetchApi, + IdentityApi, +} from '@backstage/core-plugin-api'; import { NotFoundError, ResponseError } from '@backstage/errors'; import { SyncResult, @@ -126,8 +130,8 @@ export class TechDocsStorageClient implements TechDocsStorageApi { configApi: Config; discoveryApi: DiscoveryApi; fetchApi: FetchApi; - // @deprecated Remove identityApiRef - identityApi?: any; + /** @deprecated identityApi is not needed any more */ + identityApi?: IdentityApi; }) { this.configApi = options.configApi; this.discoveryApi = options.discoveryApi; @@ -210,8 +214,10 @@ export class TechDocsStorageClient implements TechDocsStorageApi { const url = `${apiOrigin}/sync/${namespace}/${kind}/${name}`; return new Promise((resolve, reject) => { + const ctrl = new AbortController(); fetchEventSource(url, { fetch: this.fetchApi.fetch, + signal: ctrl.signal, onmessage(e: any) { if (e.event === 'log') { if (e.data) { @@ -228,6 +234,7 @@ export class TechDocsStorageClient implements TechDocsStorageApi { } }, onerror(err) { + ctrl.abort(); reject(err); }, }); diff --git a/plugins/techdocs/src/plugin.ts b/plugins/techdocs/src/plugin.ts index 9d4157ba9e..efa6bdfc1f 100644 --- a/plugins/techdocs/src/plugin.ts +++ b/plugins/techdocs/src/plugin.ts @@ -31,7 +31,6 @@ import { createRoutableExtension, discoveryApiRef, fetchApiRef, - identityApiRef, } from '@backstage/core-plugin-api'; import { createSearchResultListItemExtension, @@ -52,18 +51,13 @@ export const techdocsPlugin = createPlugin({ deps: { configApi: configApiRef, discoveryApi: discoveryApiRef, - /** - * @deprecated fetchApi is enough - */ - identityApi: identityApiRef, fetchApi: fetchApiRef, }, - factory: ({ configApi, discoveryApi, fetchApi, identityApi = null }) => + factory: ({ configApi, discoveryApi, fetchApi }) => new TechDocsStorageClient({ configApi, discoveryApi, fetchApi, - identityApi, }), }), createApiFactory({