import fastifyMiddie from "@fastify/middie"; import fastifyStatic from "@fastify/static"; import { fileURLToPath } from "node:url"; /** @type {import("fastify").FastifyPluginAsync} */ const app = async (fastify, opts) => { fastify.get("/hello", async () => "hello"); if (opts.dev) { const astro = await import("astro"); const astroDevServer = await astro.dev({ root: fileURLToPath(import.meta.resolve(".")), }); await fastify.register(await import("@fastify/http-proxy"), { upstream: `http://localhost:${astroDevServer.address.port}`, }); } else { await fastify.register(fastifyStatic, { root: fileURLToPath(import.meta.resolve("./dist/client")), }); await fastify.register(fastifyMiddie); const astroServer = await import("./dist/server/entry.mjs"); fastify.use(astroServer.handler); } fastify.get("/world", async () => "world"); }; export default app;