@tanstack/vue-router
Version:
Modern and scalable routing for Vue applications
27 lines (26 loc) • 900 B
JavaScript
import * as Vue from "vue";
import { renderToString } from "vue/server-renderer";
//#region src/ssr/renderRouterToString.tsx
var renderRouterToString = async ({ router, responseHeaders, App }) => {
try {
let html = await renderToString(Vue.createSSRApp(App, { router }));
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();
}
};
//#endregion
export { renderRouterToString };
//# sourceMappingURL=renderRouterToString.js.map