Home / File/ container.ts — astro Source File

container.ts — astro Source File

Architecture documentation for container.ts, a typescript file in the astro codebase. 12 imports, 0 dependents.

File typescript CoreAstro CoreMiddleware 12 imports 5 functions

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

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