handler.ts — astro Source File
Architecture documentation for handler.ts, a typescript file in the astro codebase. 7 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR fe5cee05_3968_5de4_5445_575c0c8017d8["handler.ts"] 17a51789_86a7_930a_1fb7_1b33b49886f8["../utils/env.js"] fe5cee05_3968_5de4_5445_575c0c8017d8 --> 17a51789_86a7_930a_1fb7_1b33b49886f8 2a45d659_8abb_c35b_6511_697156ed5f34["./prerender.js"] fe5cee05_3968_5de4_5445_575c0c8017d8 --> 2a45d659_8abb_c35b_6511_697156ed5f34 3b0ab3a2_e162_4aa0_56c9_e1a5ee6f7ccb["cloudflare:workers"] fe5cee05_3968_5de4_5445_575c0c8017d8 --> 3b0ab3a2_e162_4aa0_56c9_e1a5ee6f7ccb 82684e4b_3ae4_7fb8_85cb_07f4da397c36["virtual:astro-cloudflare:config"] fe5cee05_3968_5de4_5445_575c0c8017d8 --> 82684e4b_3ae4_7fb8_85cb_07f4da397c36 e5e807ea_8b6a_956c_db61_84f6433ad893["entrypoint"] fe5cee05_3968_5de4_5445_575c0c8017d8 --> e5e807ea_8b6a_956c_db61_84f6433ad893 cb36772b_5ea4_3a79_49fa_b1570632623e["setup"] fe5cee05_3968_5de4_5445_575c0c8017d8 --> cb36772b_5ea4_3a79_49fa_b1570632623e f16d8c76_2866_6150_bd14_0347b59abfe9["astro"] fe5cee05_3968_5de4_5445_575c0c8017d8 --> f16d8c76_2866_6150_bd14_0347b59abfe9 style fe5cee05_3968_5de4_5445_575c0c8017d8 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { env as globalEnv } from 'cloudflare:workers';
import { sessionKVBindingName, isPrerender } from 'virtual:astro-cloudflare:config';
import { createApp } from 'astro/app/entrypoint';
import { setGetEnv } from 'astro/env/setup';
import { createGetEnv } from '../utils/env.js';
import type { RouteData } from 'astro';
import {
isStaticPathsRequest,
isPrerenderRequest,
handleStaticPathsRequest,
handlePrerenderRequest,
} from './prerender.js';
setGetEnv(createGetEnv(globalEnv));
export interface Runtime {
cfContext: ExecutionContext;
}
declare global {
// This is not a real global, but is injected using Vite define to allow us to specify the Images binding name in the config.
var __ASTRO_IMAGES_BINDING_NAME: string;
}
type CfResponse = Awaited<ReturnType<Required<ExportedHandler<Env>>['fetch']>>;
const app = createApp();
export async function handle(
request: Request,
env: Env,
context: ExecutionContext,
): Promise<CfResponse> {
// Handle prerender endpoints (only active during build prerender phase)
if (isPrerender) {
if (isStaticPathsRequest(request)) {
return handleStaticPathsRequest(app) as unknown as CfResponse;
}
if (isPrerenderRequest(request)) {
return handlePrerenderRequest(app, request) as unknown as CfResponse;
}
}
const { pathname: requestPathname } = new URL(request.url);
if (env[sessionKVBindingName]) {
const sessionConfigOptions = app.manifest.sessionConfig?.options ?? {};
Object.assign(sessionConfigOptions, {
binding: env[sessionKVBindingName],
});
}
// static assets fallback, in case default _routes.json is not used
if (app.manifest.assets.has(requestPathname)) {
return env.ASSETS.fetch(request.url.replace(/\.html$/, ''));
}
let routeData: RouteData | undefined = undefined;
if (app.isDev()) {
const result = await app.devMatch(app.getPathnameFromRequest(request));
// ... (64 more lines)
Domain
Subdomains
Functions
Classes
Types
Dependencies
- ../utils/env.js
- ./prerender.js
- astro
- cloudflare:workers
- entrypoint
- setup
- virtual:astro-cloudflare:config
Source
Frequently Asked Questions
What does handler.ts do?
handler.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RoutingSystem subdomain.
What functions are defined in handler.ts?
handler.ts defines 1 function(s): handle.
What does handler.ts depend on?
handler.ts imports 7 module(s): ../utils/env.js, ./prerender.js, astro, cloudflare:workers, entrypoint, setup, virtual:astro-cloudflare:config.
Where is handler.ts in the architecture?
handler.ts is located at packages/integrations/cloudflare/src/utils/handler.ts (domain: CoreAstro, subdomain: RoutingSystem, directory: packages/integrations/cloudflare/src/utils).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free