import { renderToString as renderToString_ } from '@vue/server-renderer' import type { App } from 'vue' import { escapeInject, dangerouslySkipEscape } from 'vike/server' import { createApp } from './app' import logoUrl from './logo.svg' import type { PageContextServer } from './types' export { render } // See https://vike.dev/data-fetching export const passToClient = ['pageProps', 'urlPathname'] async function render(pageContext: PageContextServer) { const { Page, pageProps } = pageContext // This render() hook only supports SSR, see https://vike.dev/render-modes for how to modify render() to support SPA if (!Page) throw new Error('My render() hook expects pageContext.Page to be defined') const app = createApp(Page, pageProps, pageContext) const appHtml = await renderToString(app) // See https://vike.dev/head const { documentProps } = pageContext.exports const title = (documentProps && documentProps.title) || 'Vite SSR app' const desc = (documentProps && documentProps.description) || 'App using Vite + Vike' const documentHtml = escapeInject`