This commit is contained in:
polv committed 2022-05-07 23:48:51 +07:00
1 parent 2396bbcf12
commit baa5bc091e
14 files changed
+275 -269

No files matched your search

+16 -34
View File
@@ -1,47 +1,29 @@
import fastify from 'fastify'
import fastifyStatic from '@fastify/static';
import fastify from 'fastify';
import { getPath, isDev, port } from './shared'
import { fastifyRenderRouter } from '../renderer/fastify';
import { getPath, isDev, port } from './shared';
const IS_PRERENDER = true;
export async function fastifyServer() {
const app = fastify({
logger: {
prettyPrint: isDev
}
})
prettyPrint: isDev,
},
});
if (isDev) {
const vite = await import('vite')
const { createPageRenderer } = await import('vite-plugin-ssr')
await app.register(import('@fastify/express'))
app.register(import('@fastify/compress'), { global: false })
const viteDevServer = await vite.createServer({
root: getPath(),
server: { middlewareMode: 'ssr' },
})
app.use(viteDevServer.middlewares)
const renderPage = createPageRenderer({ viteDevServer, isProduction: !isDev, root: getPath() })
app.get('*', async (req, res) => {
const url = req.raw.url || req.url
const pageContextInit = {
url,
}
const pageContext = await renderPage(pageContextInit)
const { httpResponse } = pageContext
if (!httpResponse) return
const { body, statusCode, contentType } = httpResponse
res.status(statusCode).type(contentType).compress(body)
})
if (isDev || !IS_PRERENDER) {
app.register(fastifyRenderRouter, { isProduction: !isDev });
} else {
app.register(import('@fastify/static'), {
root: getPath('dist/client')
})
app.register(fastifyStatic, {
root: getPath('dist/client'),
});
}
app.listen(port)
app.listen(port);
}
if (require.main === module) {
fastifyServer()
fastifyServer();
}