import * as BunnySDK from "@bunny.net/edgescript-sdk";
/\*\*
- When a response is not served from the cache, you can use this event handler
- to modify the response going from the origin.
- This modify the response before being cached.
-
- Returns an HTTP response.
- @param {Context} context - The context of the middleware.
- @param {Request} request - The current request done to the origin.
- @param {Response} response - The HTTP response or string.
\*/
async function onOriginResponse(context: { request: Request, response: Response }): Promise<Response> | Response | void {
let body = await context.response.text();
body = body.replace('</title>', '- bunny.net</title>');
// We need to remove the original Content headers to make sure the response is returned correctly
const headers = new Headers(context.response.headers);
headers.delete('Content-Length');
headers.delete('Content-Encoding');
return new Response(body, {
status: context.response.status, // Preserve the original status code
headers, // Preserve the original headers
});
}
BunnySDK.net.http.servePullZone()
.onOriginResponse(onOriginResponse);
Examples
Modify response body (Middleware)
This script example uses a Middleware script type to dynamically modify the response body. For this demonstration, we are loading the HTML response from the origin and dynamically adjusting the HTML tag to include at the end of each page.