1// Alchemy modifications are licensed under Apache-2.0.
2// This file includes third-party code; see /THIRD_PARTY_LICENSES.md.
3/**
4 * Vendored from `@astrojs/cloudflare` v14.1.3
5 * (`src/vite-plugin-dev-server-prerender-middleware.ts`).
6 *
7 * Enables Astro's node prerender middleware in dev: declaring the `prerender`
8 * dev environment plus the marker symbol makes Astro's dev server serve
9 * prerendered routes through its stock node pipeline, ahead of the Worker
10 * proxy middleware.
11 */
12import type * as vite from "vite";
13
14const devPrerenderMiddlewareSymbol = Symbol.for("astro.devPrerenderMiddleware");
15
16export function createNodePrerenderPlugin(): vite.Plugin {
17 return {
18 name: "@alchemy.run/frontend-frameworks/astro:dev-server-prerender-middleware",
19 config() {
20 return { environments: { prerender: { dev: {} } } };
21 },
22 configureServer(server) {
23 (server as unknown as Record<symbol, boolean>)[
24 devPrerenderMiddlewareSymbol
25 ] = true;
26 },
27 };
28}