import { renderToString } from '@vue/server-renderer' import { escapeInject, dangerouslySkipEscape } from 'vite-plugin-ssr' import { createApp } from './app' import logoUrl from './logo.svg' import type { PageContext } from './types' import type { PageContextBuiltIn } from 'vite-plugin-ssr' export { render } // See https://vite-plugin-ssr.com/data-fetching export const passToClient = ['pageProps', 'urlPathname'] async function render(pageContext: PageContextBuiltIn & PageContext) { const app = createApp(pageContext) const appHtml = await renderToString(app) // See https://vite-plugin-ssr.com/head const { documentProps } = pageContext const title = (documentProps && documentProps.title) || 'Vite SSR app' const desc = (documentProps && documentProps.description) || 'App using Vite + vite-plugin-ssr' const documentHtml = escapeInject` ${title}
${dangerouslySkipEscape(appHtml)}
` return { documentHtml, pageContext: { // We can add some `pageContext` here, which is useful if we want to do page redirection https://vite-plugin-ssr.com/page-redirection }, } }