astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
15 lines (14 loc) • 530 B
JavaScript
import { defineMiddleware } from "../../virtual-modules/middleware.js";
import { getActionContext } from "./virtual/server.js";
const onRequest = defineMiddleware(async (context, next) => {
if (context.isPrerendered) return next();
const { action, setActionResult, serializeActionResult } = getActionContext(context);
if (action?.calledFrom === "form") {
const actionResult = await action.handler();
setActionResult(action.name, serializeActionResult(actionResult));
}
return next();
});
export {
onRequest
};