dont recreate server every time

This commit is contained in:
Simon Knott 2024-11-12 14:49:16 +01:00
parent c3f3bbfa39
commit 592f7cc2e3
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC

View file

@ -69,6 +69,22 @@ async function loadTrace(traceUrl: string, traceFileName: string | null, clientI
return traceModel;
}
const traceViewerServers = new Map<string, TraceViewerServerBackend>();
function getTraceViewerServer(client?: any): TraceViewerServerBackend {
let traceViewerServerBaseUrl = self.registration.scope;
if (client?.url) {
const clientUrl = new URL(client.url);
if (clientUrl.searchParams.has('server'))
traceViewerServerBaseUrl = clientUrl.searchParams.get('server')!;
}
if (!traceViewerServers.has(traceViewerServerBaseUrl))
traceViewerServers.set(traceViewerServerBaseUrl, new TraceViewerServerBackend(traceViewerServerBaseUrl));
return traceViewerServers.get(traceViewerServerBaseUrl)!;
}
// @ts-ignore
async function doFetch(event: FetchEvent): Promise<Response> {
// In order to make Accessibility Insights for Web work.
@ -77,6 +93,7 @@ async function doFetch(event: FetchEvent): Promise<Response> {
const request = event.request;
const client = await self.clients.get(event.clientId);
const traceViewerServer = getTraceViewerServer(client);
// When trace viewer is deployed over https, we will force upgrade
// insecure http subresources to https. Otherwise, these will fail
@ -93,14 +110,6 @@ async function doFetch(event: FetchEvent): Promise<Response> {
return new Response(null, { status: 200 });
}
let traceViewerServerBaseUrl = self.registration.scope;
if (client?.url) {
const clientUrl = new URL(client.url);
if (clientUrl.searchParams.has('server'))
traceViewerServerBaseUrl = clientUrl.searchParams.get('server')!;
}
const traceViewerServer = new TraceViewerServerBackend(traceViewerServerBaseUrl);
const traceUrl = url.searchParams.get('trace');
if (relativePath === '/contexts') {