1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { getRandomEmoji } from "https://esm.town/v/maxm/getRandomEmoji";
export default async function(req: Request): Promise<Response> {
let timer: number | undefined = undefined;
const body = new ReadableStream({
start(controller) {
timer = setInterval(() => {
const message = `It is ${new Date().toISOString()} ${getRandomEmoji()}\n`;
controller.enqueue(new TextEncoder().encode(message));
}, 200);
},
cancel() {
if (timer !== undefined) {
clearInterval(timer);
}
},
});
return new Response(body, {
headers: {
"content-type": "text/plain; charset=utf-8",
"x-content-type-options": "nosniff",
},
});
}