Files
jp 0917366cdf Separate JSON API backend (vm_api.py) + React+TanStack frontend scaffold
- vm_api.py: pure FastAPI JSON API on :8098 with CORS
- vm-api.service: systemd unit for API (replaces inline HTML vm_web.py for frontend)
- vm_web.py: kept intact as fallback; Apache now proxies /api/ -> :8098
- frontend/: Vite + React + TanStack Query scaffold
- Apache vhost updated: DocumentRoot -> frontend/dist, /api/ proxy, SPA fallback
- All original HTML pages still functional via :8099 during transition
2026-08-13 17:42:33 +01:00

28 lines
1.0 KiB
JavaScript

const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
let react_dom_server = require("react-dom/server");
react_dom_server = require_runtime.__toESM(react_dom_server, 1);
//#region src/ssr/renderRouterToString.tsx
var renderRouterToString = async ({ router, responseHeaders, children }) => {
try {
let html = react_dom_server.default.renderToString(children);
router.serverSsr.setRenderFinished();
const injectedHtml = router.serverSsr.takeBufferedHtml();
if (injectedHtml) html = html.replace(`</body>`, () => `${injectedHtml}</body>`);
return new Response(`<!DOCTYPE html>${html}`, {
status: router._serverResult?.type === "render" ? router._serverResult.status : 200,
headers: responseHeaders
});
} catch (error) {
console.error("Render to string error:", error);
return new Response("Internal Server Error", {
status: 500,
headers: responseHeaders
});
} finally {
router.serverSsr?.cleanup();
}
};
//#endregion
exports.renderRouterToString = renderRouterToString;
//# sourceMappingURL=renderRouterToString.cjs.map