app.ts — astro Source File
Architecture documentation for app.ts, a typescript file in the astro codebase. 22 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 6ca59778_1689_2eea_61cd_dfe5334eb243["app.ts"] 97dbad4f_4a90_206c_6e29_6a54c12480f2["../core/app/index.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 97dbad4f_4a90_206c_6e29_6a54c12480f2 c396bb1c_7eee_221a_d665_5744d13dc23f["../core/build/util.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> c396bb1c_7eee_221a_d665_5744d13dc23f 7216d952_4e4a_2d18_a85b_74b4ace79e2b["../core/constants.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 7216d952_4e4a_2d18_a85b_74b4ace79e2b 8df634da_0f30_1e1f_1314_2439b0c9baab["../core/errors/errors-data.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 8df634da_0f30_1e1f_1314_2439b0c9baab ef8a1e3f_e350_75a6_b92d_62a8566d8db9["../core/errors/index.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> ef8a1e3f_e350_75a6_b92d_62a8566d8db9 d3861967_b647_84d2_ff48_15013353bd56["../core/logger/core.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> d3861967_b647_84d2_ff48_15013353bd56 32f8c7d4_d66e_e0cf_b019_46ec3f2fea31["../core/module-loader/index.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 32f8c7d4_d66e_e0cf_b019_46ec3f2fea31 7e14fb1f_4abe_1438_9c6e_bb382e90b0fe["../core/render-context.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 7e14fb1f_4abe_1438_9c6e_bb382e90b0fe 6f8d6404_9359_4a80_21ec_f5d07c6e4626["../core/request.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 6f8d6404_9359_4a80_21ec_f5d07c6e4626 e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> e9b74c5a_8d34_34a7_e196_5e41b87214aa baa53824_73a3_1e03_2043_4d0c058ecca5["../types/public/index.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> baa53824_73a3_1e03_2043_4d0c058ecca5 1df740aa_2c16_6e41_684b_dfb098a3c1f2["./controller.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 1df740aa_2c16_6e41_684b_dfb098a3c1f2 50974987_6e61_90fa_a6c1_30148cb19b9d["./error.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 50974987_6e61_90fa_a6c1_30148cb19b9d 911da7d4_13f4_c549_1a3f_f8499193df89["../vite-plugin-astro-server/index.js"] 6ca59778_1689_2eea_61cd_dfe5334eb243 --> 911da7d4_13f4_c549_1a3f_f8499193df89 style 6ca59778_1689_2eea_61cd_dfe5334eb243 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type http from 'node:http';
import { removeTrailingForwardSlash } from '@astrojs/internal-helpers/path';
import { BaseApp, type RenderErrorOptions } from '../core/app/index.js';
import { shouldAppendForwardSlash } from '../core/build/util.js';
import { clientLocalsSymbol } from '../core/constants.js';
import {
MiddlewareNoDataOrNextCalled,
MiddlewareNotAResponse,
} from '../core/errors/errors-data.js';
import { type AstroError, createSafeError, isAstroError } from '../core/errors/index.js';
import type { Logger } from '../core/logger/core.js';
import type { ModuleLoader } from '../core/module-loader/index.js';
import type { CreateRenderContext, RenderContext } from '../core/render-context.js';
import { createRequest } from '../core/request.js';
import type { AstroSettings, RoutesList } from '../types/astro.js';
import type { RouteData, SSRManifest } from '../types/public/index.js';
import type { DevServerController } from '../vite-plugin-astro-server/controller.js';
import { recordServerError } from '../vite-plugin-astro-server/error.js';
import { runWithErrorHandling } from '../vite-plugin-astro-server/index.js';
import { handle500Response, writeSSRResult } from '../vite-plugin-astro-server/response.js';
import { RunnablePipeline } from './pipeline.js';
import { getCustom404Route, getCustom500Route } from '../core/routing/helpers.js';
import { ensure404Route } from '../core/routing/astro-designed-error-pages.js';
import { matchRoute } from '../core/routing/dev.js';
import type { DevMatch } from '../core/app/base.js';
export class AstroServerApp extends BaseApp<RunnablePipeline> {
settings: AstroSettings;
logger: Logger;
loader: ModuleLoader;
manifestData: RoutesList;
currentRenderContext: RenderContext | undefined = undefined;
resolvedPathname: string | undefined = undefined;
constructor(
manifest: SSRManifest,
streaming = true,
logger: Logger,
manifestData: RoutesList,
loader: ModuleLoader,
settings: AstroSettings,
getDebugInfo: () => Promise<string>,
) {
super(manifest, streaming, settings, logger, loader, manifestData, getDebugInfo);
this.settings = settings;
this.logger = logger;
this.loader = loader;
this.manifestData = manifestData;
}
isDev(): boolean {
return true;
}
/**
* Updates the routes list when files change during development.
* Called via HMR when new pages are added/removed.
*/
updateRoutes(newRoutesList: RoutesList): void {
this.manifestData = newRoutesList;
this.pipeline.setManifestData(newRoutesList);
// ... (240 more lines)
Domain
Subdomains
Classes
Types
Dependencies
- ../core/app/base.js
- ../core/app/index.js
- ../core/build/util.js
- ../core/constants.js
- ../core/errors/errors-data.js
- ../core/errors/index.js
- ../core/logger/core.js
- ../core/module-loader/index.js
- ../core/render-context.js
- ../core/request.js
- ../core/routing/astro-designed-error-pages.js
- ../core/routing/dev.js
- ../core/routing/helpers.js
- ../types/astro.js
- ../types/public/index.js
- ../vite-plugin-astro-server/index.js
- ./controller.js
- ./error.js
- ./pipeline.js
- ./response.js
- node:http
- path
Source
Frequently Asked Questions
What does app.ts do?
app.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RenderingEngine subdomain.
What does app.ts depend on?
app.ts imports 22 module(s): ../core/app/base.js, ../core/app/index.js, ../core/build/util.js, ../core/constants.js, ../core/errors/errors-data.js, ../core/errors/index.js, ../core/logger/core.js, ../core/module-loader/index.js, and 14 more.
Where is app.ts in the architecture?
app.ts is located at packages/astro/src/vite-plugin-app/app.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/vite-plugin-app).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free