UNPKG

@benpsnyder/analogjs-esm-vite-plugin-nitro

Version:

A Vite plugin for adding a nitro API server

40 lines 1.57 kB
import { copyPublicAssets, prerender } from 'nitropack'; import { createNitro, build, prepare } from 'nitropack'; import { existsSync, unlinkSync } from 'node:fs'; import { addPostRenderingHooks } from './hooks/post-rendering-hook.js'; export async function buildServer(options, nitroConfig) { const nitro = await createNitro({ dev: false, preset: process.env['BUILD_PRESET'], ...nitroConfig, }); if (options?.prerender?.postRenderingHooks) { addPostRenderingHooks(nitro, options.prerender.postRenderingHooks); } await prepare(nitro); await copyPublicAssets(nitro); if (options?.ssr && nitroConfig?.prerender?.routes && (nitroConfig?.prerender?.routes.find((route) => route === '/') || nitroConfig?.prerender?.routes?.length === 0)) { const indexFileExts = ['', '.br', '.gz']; indexFileExts.forEach((fileExt) => { // Remove the root index.html(.br|.gz) files const indexFilePath = `${nitroConfig?.output?.publicDir}/index.html${fileExt ? `${fileExt}` : ''}`; if (existsSync(indexFilePath)) { unlinkSync(indexFilePath); } }); } if (nitroConfig?.prerender?.routes && nitroConfig?.prerender?.routes?.length > 0) { console.log(`Prerendering static pages...`); await prerender(nitro); } if (!options?.static) { console.log('Building Server...'); await build(nitro); } await nitro.close(); } //# sourceMappingURL=build-server.js.map