container.ts — astro Source File
Architecture documentation for container.ts, a typescript file in the astro codebase. 12 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 102fe931_c243_3ea6_cd7a_6811d0d43c9e["container.ts"] ec3f57f9_1334_b72b_abeb_11b186147ebe["../integrations/hooks.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> ec3f57f9_1334_b72b_abeb_11b186147ebe e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> e9b74c5a_8d34_34a7_e196_5e41b87214aa c32d12e2_d85e_28c0_eea7_9b29629857e0["../types/public/config.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> c32d12e2_d85e_28c0_eea7_9b29629857e0 8727a991_e152_0c2c_a3a1_5ebb3a5ec732["../create-vite.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> 8727a991_e152_0c2c_a3a1_5ebb3a5ec732 d3861967_b647_84d2_ff48_15013353bd56["../core/logger/core.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> d3861967_b647_84d2_ff48_15013353bd56 bf5441b3_b825_f070_aed3_a0f2ac54caa3["../core/routing/manifest/create.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> bf5441b3_b825_f070_aed3_a0f2ac54caa3 118daa85_78ea_83c0_84f6_bcd529c428e0["./sync/index.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> 118daa85_78ea_83c0_84f6_bcd529c428e0 83a1f26e_e929_2185_8cb4_97cf43d76365["../core/dev/adapter-validation.js"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> 83a1f26e_e929_2185_8cb4_97cf43d76365 e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415 c2f6615e_96e9_c4eb_5f71_cf120e271705["node:http"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> c2f6615e_96e9_c4eb_5f71_cf120e271705 155bd823_ceeb_ca16_2d83_f5ec72c22720["node:net"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> 155bd823_ceeb_ca16_2d83_f5ec72c22720 263e522e_1aa5_ebc3_e7d6_45ebc51671f7["vite"] 102fe931_c243_3ea6_cd7a_6811d0d43c9e --> 263e522e_1aa5_ebc3_e7d6_45ebc51671f7 style 102fe931_c243_3ea6_cd7a_6811d0d43c9e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import nodeFs from 'node:fs';
import type * as http from 'node:http';
import type { AddressInfo } from 'node:net';
import * as vite from 'vite';
import {
runHookConfigDone,
runHookConfigSetup,
runHookServerDone,
runHookServerStart,
} from '../../integrations/hooks.js';
import type { AstroSettings } from '../../types/astro.js';
import type { AstroInlineConfig } from '../../types/public/config.js';
import { createVite } from '../create-vite.js';
import type { Logger } from '../logger/core.js';
import { createRoutesList } from '../routing/manifest/create.js';
import { syncInternal } from '../sync/index.js';
import { warnMissingAdapter } from './adapter-validation.js';
export interface Container {
fs: typeof nodeFs;
logger: Logger;
settings: AstroSettings;
viteServer: vite.ViteDevServer;
inlineConfig: AstroInlineConfig;
restartInFlight: boolean; // gross
handle: (req: http.IncomingMessage, res: http.ServerResponse) => void;
close: () => Promise<void>;
}
interface CreateContainerParams {
logger: Logger;
settings: AstroSettings;
inlineConfig?: AstroInlineConfig;
isRestart?: boolean;
fs?: typeof nodeFs;
}
export async function createContainer({
isRestart = false,
logger,
inlineConfig,
settings,
fs = nodeFs,
}: CreateContainerParams): Promise<Container> {
// Initialize
settings = await runHookConfigSetup({
settings,
command: 'dev',
logger: logger,
isRestart,
});
const {
base,
server: { host, headers, open: serverOpen, allowedHosts },
} = settings.config;
// serverOpen = true, isRestart = false
// when astro dev --open command is run the first time
// expected behavior: spawn a new tab
// ... (112 more lines)
Domain
Subdomains
Dependencies
- ../core/dev/adapter-validation.js
- ../core/logger/core.js
- ../core/routing/manifest/create.js
- ../create-vite.js
- ../integrations/hooks.js
- ../types/astro.js
- ../types/public/config.js
- ./sync/index.js
- node:fs
- node:http
- node:net
- vite
Source
Frequently Asked Questions
What does container.ts do?
container.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in container.ts?
container.ts defines 5 function(s): Promise, closeContainer, createContainer, req, startContainer.
What does container.ts depend on?
container.ts imports 12 module(s): ../core/dev/adapter-validation.js, ../core/logger/core.js, ../core/routing/manifest/create.js, ../create-vite.js, ../integrations/hooks.js, ../types/astro.js, ../types/public/config.js, ./sync/index.js, and 4 more.
Where is container.ts in the architecture?
container.ts is located at packages/astro/src/core/dev/container.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/astro/src/core/dev).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free