server.ts — astro Source File
Architecture documentation for server.ts, a typescript file in the astro codebase. 8 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 3d1ffe9b_acaf_0628_7657_d34856e4c8a2["server.ts"] 0bbe90c3_6285_de58_27ec_10e87cc9c96f["./middleware.js"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> 0bbe90c3_6285_de58_27ec_10e87cc9c96f 48658eda_5bcd_d93a_6692_f7e186da9cbf["./shared.js"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> 48658eda_5bcd_d93a_6692_f7e186da9cbf 4e577f48_d294_df8f_eaf1_6cca3c36eaf3["./standalone.js"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> 4e577f48_d294_df8f_eaf1_6cca3c36eaf3 b384cf30_390d_6db6_4724_be96d46e50ef["./types.js"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> b384cf30_390d_6db6_4724_be96d46e50ef e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415 f16d8c76_2866_6150_bd14_0347b59abfe9["astro"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> f16d8c76_2866_6150_bd14_0347b59abfe9 8d666858_ab9a_2697_4536_5cb6ce038643["node"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> 8d666858_ab9a_2697_4536_5cb6ce038643 cb36772b_5ea4_3a79_49fa_b1570632623e["setup"] 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 --> cb36772b_5ea4_3a79_49fa_b1570632623e style 3d1ffe9b_acaf_0628_7657_d34856e4c8a2 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { existsSync, readFileSync } from 'node:fs';
import type { NodeAppHeadersJson, SSRManifest } from 'astro';
import { NodeApp } from 'astro/app/node';
import { setGetEnv } from 'astro/env/setup';
import createMiddleware from './middleware.js';
import { STATIC_HEADERS_FILE } from './shared.js';
import startServer, { createStandaloneHandler } from './standalone.js';
import type { Options } from './types.js';
setGetEnv((key) => process.env[key]);
export function createExports(manifest: SSRManifest, options: Options) {
const app = new NodeApp(manifest, !options.experimentalDisableStreaming);
let headersMap: NodeAppHeadersJson | undefined = undefined;
if (options.staticHeaders) {
headersMap = readHeadersJson(manifest.outDir);
}
if (headersMap) {
app.setHeadersMap(headersMap);
}
options.trailingSlash = manifest.trailingSlash;
return {
options: options,
handler:
options.mode === 'middleware'
? createMiddleware(app, options)
: createStandaloneHandler(app, options),
startServer: () => startServer(app, options),
};
}
export function start(manifest: SSRManifest, options: Options) {
if (options.mode !== 'standalone' || process.env.ASTRO_NODE_AUTOSTART === 'disabled') {
return;
}
let headersMap: NodeAppHeadersJson | undefined = undefined;
if (options.staticHeaders) {
headersMap = readHeadersJson(manifest.outDir);
}
const app = new NodeApp(manifest, !options.experimentalDisableStreaming);
if (headersMap) {
app.setHeadersMap(headersMap);
}
startServer(app, options);
}
function readHeadersJson(outDir: string | URL): NodeAppHeadersJson | undefined {
let headersMap: NodeAppHeadersJson | undefined = undefined;
const headersUrl = new URL(STATIC_HEADERS_FILE, outDir);
if (existsSync(headersUrl)) {
const content = readFileSync(headersUrl, 'utf-8');
try {
headersMap = JSON.parse(content) as NodeAppHeadersJson;
} catch (e: any) {
console.error('[@astrojs/node] Error parsing _headers.json: ' + e.message);
console.error('[@astrojs/node] Please make sure your _headers.json is valid JSON.');
}
}
return headersMap;
}
Domain
Subdomains
Functions
Dependencies
- ./middleware.js
- ./shared.js
- ./standalone.js
- ./types.js
- astro
- node
- node:fs
- setup
Source
Frequently Asked Questions
What does server.ts do?
server.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RoutingSystem subdomain.
What functions are defined in server.ts?
server.ts defines 3 function(s): createExports, readHeadersJson, start.
What does server.ts depend on?
server.ts imports 8 module(s): ./middleware.js, ./shared.js, ./standalone.js, ./types.js, astro, node, node:fs, setup.
Where is server.ts in the architecture?
server.ts is located at packages/integrations/node/src/server.ts (domain: CoreAstro, subdomain: RoutingSystem, directory: packages/integrations/node/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free