Home / Function/ vitePluginMiddlewareBuild() — astro Function Reference

vitePluginMiddlewareBuild() — astro Function Reference

Architecture documentation for the vitePluginMiddlewareBuild() function in vite-plugin.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  1e3dfd14_44be_05b6_dbd2_54e8ce873ad0["vitePluginMiddlewareBuild()"]
  f79d9e6e_0575_c2b8_506e_ddbc799b5f07["vite-plugin.ts"]
  1e3dfd14_44be_05b6_dbd2_54e8ce873ad0 -->|defined in| f79d9e6e_0575_c2b8_506e_ddbc799b5f07
  style 1e3dfd14_44be_05b6_dbd2_54e8ce873ad0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/core/middleware/vite-plugin.ts lines 117–150

export function vitePluginMiddlewareBuild(
	opts: StaticBuildOptions,
	internals: BuildInternals,
): VitePlugin {
	let canSplitMiddleware = true;
	return {
		name: '@astro/plugin-middleware-build',

		configResolved(config) {
			// Cloudflare Workers (webworker target) can't have multiple entrypoints,
			// so we only add middleware as a separate bundle for other targets (Node, Deno, etc).
			canSplitMiddleware = config.ssr.target !== 'webworker';
		},

		options(options) {
			if (canSplitMiddleware) {
				// Add middleware as a separate rollup input for environments that support multiple entrypoints.
				// This allows the middleware to be bundled independently.
				return addRollupInput(options, [MIDDLEWARE_MODULE_ID]);
			} else {
				// TODO warn if edge middleware is enabled
			}
		},

		writeBundle(_, bundle) {
			for (const [chunkName, chunk] of Object.entries(bundle)) {
				if (chunk.type !== 'asset' && chunk.facadeModuleId === MIDDLEWARE_RESOLVED_MODULE_ID) {
					const outputDirectory = getServerOutputDirectory(opts.settings);
					internals.middlewareEntryPoint = new URL(chunkName, outputDirectory);
				}
			}
		},
	};
}

Domain

Subdomains

Frequently Asked Questions

What does vitePluginMiddlewareBuild() do?
vitePluginMiddlewareBuild() is a function in the astro codebase, defined in packages/astro/src/core/middleware/vite-plugin.ts.
Where is vitePluginMiddlewareBuild() defined?
vitePluginMiddlewareBuild() is defined in packages/astro/src/core/middleware/vite-plugin.ts at line 117.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free