aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/node/test/fixtures/api-route/src/pages/streaming.ts
blob: 9ecb884bf89b1037f4be83122d3704780cf71248 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
export const GET = ({ locals }) => {
    let sentChunks = 0;

    const readableStream = new ReadableStream({
        async pull(controller) {
            if (sentChunks === 3) return controller.close();
            else sentChunks++;

            await new Promise(resolve => setTimeout(resolve, 1000));
            controller.enqueue(new TextEncoder().encode('hello\n'));
        },
        cancel() {
            locals.cancelledByTheServer = true;
        }
    });

    return new Response(readableStream, {
        headers: {
            "Content-Type": "text/event-stream"
        }
    });
}