Rewrite the /sync/:namespace/:kind/:name to return an event-stream

Signed-off-by: Dominik Henneke <dominik.henneke@sda-se.com>
This commit is contained in:
Dominik Henneke
2021-07-05 12:43:23 +02:00
parent c18e8eb910
commit f1200f44c8
15 changed files with 691 additions and 185 deletions
+12 -9
View File
@@ -17,6 +17,7 @@
import { createDevApp } from '@backstage/dev-utils';
import { NotFoundError } from '@backstage/errors';
import React from 'react';
import { EntityName } from '@backstage/catalog-model';
import {
Reader,
SyncResult,
@@ -81,9 +82,18 @@ function createPage({
});
}
async syncEntityDocs() {
async syncEntityDocs(_: EntityName, logHandler?: (line: string) => void) {
if (syncDocsDelay) {
await new Promise(resolve => setTimeout(resolve, syncDocsDelay));
for (let i = 0; i < 10; i++) {
setTimeout(
() => logHandler?.call(this, `Log line ${i}`),
((i + 1) * syncDocsDelay) / 10,
);
}
await new Promise(resolve => {
setTimeout(resolve, syncDocsDelay);
});
}
return syncDocs();
@@ -195,13 +205,6 @@ createDevApp()
syncDocsDelay: 2000,
})}
</TabbedLayout.Route>
<TabbedLayout.Route path="/timeout" title="Sync Timeout">
{createPage({
syncDocs: () => 'timeout',
syncDocsDelay: 2000,
})}
</TabbedLayout.Route>
</TabbedLayout>
</Page>
),