sse.ts — astro Source File
Architecture documentation for sse.ts, a typescript file in the astro codebase. 1 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 8ee6d526_730d_8006_9ce4_1e28cf68d39c["sse.ts"] f16d8c76_2866_6150_bd14_0347b59abfe9["astro"] 8ee6d526_730d_8006_9ce4_1e28cf68d39c --> f16d8c76_2866_6150_bd14_0347b59abfe9 style 8ee6d526_730d_8006_9ce4_1e28cf68d39c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type { APIContext } from 'astro';
const encoder = new TextEncoder();
declare global {
// eslint-disable-next-line no-var
var __requestAbortState: { aborted: boolean; events: string[] } | undefined;
}
export const GET = ({ request }: APIContext) => {
globalThis.__requestAbortState = { aborted: false, events: ['started'] };
let heartbeat: ReturnType<typeof setInterval> | undefined;
const stream = new ReadableStream<Uint8Array>({
start(controller) {
const enqueue = (payload: string) => {
controller.enqueue(encoder.encode(`data: ${payload}\n\n`));
};
enqueue('ready');
heartbeat = setInterval(() => enqueue('ping'), 1000);
const onAbort = () => {
if (heartbeat) clearInterval(heartbeat);
globalThis.__requestAbortState = {
aborted: true,
events: [...(globalThis.__requestAbortState?.events ?? []), 'aborted'],
};
controller.close();
};
if (request.signal.aborted) {
onAbort();
return;
}
request.signal.addEventListener('abort', onAbort, { once: true });
},
cancel() {
if (heartbeat) clearInterval(heartbeat);
},
});
return new Response(stream, {
headers: {
'content-type': 'text/event-stream; charset=utf-8',
'cache-control': 'no-cache, no-transform',
connection: 'keep-alive',
},
});
};
Domain
Subdomains
Functions
Classes
Dependencies
- astro
Source
Frequently Asked Questions
What does sse.ts do?
sse.ts is a source file in the astro codebase, written in typescript. It belongs to the IntegrationAdapters domain, SsrAdapters subdomain.
What functions are defined in sse.ts?
sse.ts defines 1 function(s): GET.
What does sse.ts depend on?
sse.ts imports 1 module(s): astro.
Where is sse.ts in the architecture?
sse.ts is located at packages/astro/test/fixtures/request-signal/src/pages/sse.ts (domain: IntegrationAdapters, subdomain: SsrAdapters, directory: packages/astro/test/fixtures/request-signal/src/pages).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free