basic docker config, fixes several critical faults, allows status manager to get status via sse

This commit is contained in:
2023-10-07 12:19:43 -06:00
parent 2487529aaf
commit 6944cbb9f7
10 changed files with 172 additions and 45 deletions

View File

@@ -25,7 +25,26 @@ export const handler: Handlers = {
return new Response("action done");
}
},
GET() {
return new Response(SERVER_STATE.status);
GET(_req, _ctx) {
let listener: (e: CustomEvent) => void;
const body = new ReadableStream({
async start(controller){
const event = `event: status\ndata: ${SERVER_STATE.status}\n\n`
controller.enqueue(event);
listener = (e) => {
const event = `event: status\ndata: ${e.detail}\n\n`
controller.enqueue(event);
};
globalThis.addEventListener('serverstatuschange' as any, listener)
},
cancel() {
globalThis.removeEventListener('serverstatuschange' as any, listener);
}
})
return new Response(body.pipeThrough(new TextEncoderStream()), { headers: {
"Content-Type": "text/event-stream",
"cache-control": "no-cache"
}});
}
};