UNPKG

@tanstack/vue-router

Version:

Modern and scalable routing for Vue applications

28 lines 1.01 kB
import * as Vue from 'vue'; import { renderToString as vueRenderToString } from 'vue/server-renderer'; export const renderRouterToString = async ({ router, responseHeaders, App, }) => { try { const app = Vue.createSSRApp(App, { router }); let html = await vueRenderToString(app); router.serverSsr.setRenderFinished(); const injectedHtml = router.serverSsr.takeBufferedHtml(); if (injectedHtml) { html = html.replace(`</body>`, () => `${injectedHtml}</body>`); } return new Response(`<!DOCTYPE html>${html}`, { status: router.stores.statusCode.get(), 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