UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

36 lines 1.37 kB
import * as Solid from 'solid-js/web'; import { makeSsrSerovalPlugin } from '@tanstack/router-core'; export const renderRouterToString = async ({ router, responseHeaders, children, }) => { try { const serializationAdapters = router.options?.serializationAdapters || router.options.ssr?.serializationAdapters; const serovalPlugins = serializationAdapters?.map((adapter) => { const plugin = makeSsrSerovalPlugin(adapter, { didRun: false }); return plugin; }); let html = Solid.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(); } }; //# sourceMappingURL=renderRouterToString.jsx.map