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
Source
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