createAstroServerApp() — astro Function Reference
Architecture documentation for the createAstroServerApp() function in createAstroServerApp.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD b5e5d59b_0e34_a5aa_9ff9_1e2941c15529["createAstroServerApp()"] bb92c296_4c53_ed2f_70a9_0de46c7e9931["createAstroServerApp.ts"] b5e5d59b_0e34_a5aa_9ff9_1e2941c15529 -->|defined in| bb92c296_4c53_ed2f_70a9_0de46c7e9931 style b5e5d59b_0e34_a5aa_9ff9_1e2941c15529 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/src/vite-plugin-app/createAstroServerApp.ts lines 21–86
export default async function createAstroServerApp(
controller: DevServerController,
settings: AstroSettings,
loader: ModuleLoader,
logger?: Logger,
) {
const actualLogger =
logger ??
new Logger({
dest: nodeLogDestination,
level: settings.logLevel,
});
const routesList: RoutesList = { routes: routes.map((r: RouteInfo) => r.routeData) };
const debugInfoProvider = new DevDebugInfoProvider({
config: settings.config,
astroVersionProvider: new BuildTimeAstroVersionProvider(),
operatingSystemProvider: new ProcessOperatingSystemProvider(),
packageManager: await getPackageManager({
packageManagerUserAgentProvider: new ProcessPackageManagerUserAgentProvider(),
commandExecutor: new TinyexecCommandExecutor(),
}),
nodeVersionProvider: new ProcessNodeVersionProvider(),
});
const debugInfoFormatter = new StyledDebugInfoFormatter({
textStyler: new PassthroughTextStyler(),
});
const debugInfo = debugInfoFormatter.format(await debugInfoProvider.get());
const app = await AstroServerApp.create(
manifest,
routesList,
actualLogger,
loader,
settings,
async () => debugInfo,
);
// Listen for route updates via HMR
if (import.meta.hot) {
import.meta.hot.on('astro:routes-updated', async () => {
try {
// Re-import the routes module to get fresh routes
const { routes: newRoutes } = await import('virtual:astro:routes');
const newRoutesList: RoutesList = {
routes: newRoutes.map((r: RouteInfo) => r.routeData),
};
app.updateRoutes(newRoutesList);
actualLogger.debug('router', 'Routes updated via HMR');
} catch (e: any) {
actualLogger.error('router', `Failed to update routes via HMR:\n ${e}`);
}
});
}
return {
handler(incomingRequest: http.IncomingMessage, incomingResponse: http.ServerResponse) {
app.handleRequest({
controller,
incomingRequest,
incomingResponse,
isHttps: loader?.isHttps() ?? false,
});
},
};
}
Domain
Subdomains
Source
Frequently Asked Questions
What does createAstroServerApp() do?
createAstroServerApp() is a function in the astro codebase, defined in packages/astro/src/vite-plugin-app/createAstroServerApp.ts.
Where is createAstroServerApp() defined?
createAstroServerApp() is defined in packages/astro/src/vite-plugin-app/createAstroServerApp.ts at line 21.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free