@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
35 lines (34 loc) • 1.34 kB
JavaScript
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
let _tanstack_router_core = require("@tanstack/router-core");
let solid_js_web = require("solid-js/web");
solid_js_web = require_runtime.__toESM(solid_js_web);
//#region src/ssr/renderRouterToString.tsx
var renderRouterToString = async ({ router, responseHeaders, children }) => {
try {
const serovalPlugins = (router.options?.serializationAdapters || router.options.ssr?.serializationAdapters)?.map((adapter) => {
return (0, _tanstack_router_core.makeSsrSerovalPlugin)(adapter, { didRun: false });
});
let html = solid_js_web.renderToString(children, {
nonce: router.options.ssr?.nonce,
plugins: serovalPlugins
});
router.serverSsr.setRenderFinished();
const injectedHtml = router.serverSsr.takeBufferedHtml();
if (injectedHtml) html = html.replace(`</body>`, () => `${injectedHtml}</body>`);
return new Response(`<!DOCTYPE html>${html}`, {
status: router.state.statusCode,
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