handleImageRequest() — astro Function Reference
Architecture documentation for the handleImageRequest() function in shared.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD ed295512_d229_a4d2_b12b_c573504afd00["handleImageRequest()"] 6a8f5c45_bf5b_34c9_0e8c_3118f0ca359e["shared.ts"] ed295512_d229_a4d2_b12b_c573504afd00 -->|defined in| 6a8f5c45_bf5b_34c9_0e8c_3118f0ca359e 0b5c99da_0bec_0e51_a67d_5cdfd26a1318["loadRemoteImage()"] ed295512_d229_a4d2_b12b_c573504afd00 -->|calls| 0b5c99da_0bec_0e51_a67d_5cdfd26a1318 style ed295512_d229_a4d2_b12b_c573504afd00 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/src/assets/endpoint/shared.ts lines 23–70
export const handleImageRequest = async ({
request,
loadLocalImage,
}: {
request: Request;
loadLocalImage: (src: string, baseUrl: URL) => Promise<Buffer | undefined>;
}) => {
const imageService = await getConfiguredImageService();
if (!('transform' in imageService)) {
throw new Error('Configured image service is not a local service');
}
const url = new URL(request.url);
const transform = await imageService.parseURL(url, imageConfig);
if (!transform?.src) {
return new Response('Invalid request', { status: 400 });
}
let inputBuffer: Buffer | undefined = undefined;
if (isRemotePath(transform.src)) {
if (!isRemoteAllowed(transform.src, imageConfig)) {
return new Response('Forbidden', { status: 403 });
}
inputBuffer = await loadRemoteImage(new URL(transform.src));
} else {
inputBuffer = await loadLocalImage(removeQueryString(transform.src), url);
}
if (!inputBuffer) {
return new Response('Internal Server Error', { status: 500 });
}
const { data, format } = await imageService.transform(inputBuffer, transform, imageConfig);
return new Response(data as Uint8Array<ArrayBuffer>, {
status: 200,
headers: {
'Content-Type': mime.lookup(format) ?? `image/${format}`,
'Cache-Control': 'public, max-age=31536000',
ETag: etag(data.toString()),
Date: new Date().toUTCString(),
},
});
};
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does handleImageRequest() do?
handleImageRequest() is a function in the astro codebase, defined in packages/astro/src/assets/endpoint/shared.ts.
Where is handleImageRequest() defined?
handleImageRequest() is defined in packages/astro/src/assets/endpoint/shared.ts at line 23.
What does handleImageRequest() call?
handleImageRequest() calls 1 function(s): loadRemoteImage.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free