Home / Function/ createStaticPreviewServer() — astro Function Reference

createStaticPreviewServer() — astro Function Reference

Architecture documentation for the createStaticPreviewServer() function in static-preview-server.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  9a0c3d75_688d_afc5_488e_8fc3d9b66391["createStaticPreviewServer()"]
  bf1307cf_9863_81da_aef9_4f34d8a84d2e["static-preview-server.ts"]
  9a0c3d75_688d_afc5_488e_8fc3d9b66391 -->|defined in| bf1307cf_9863_81da_aef9_4f34d8a84d2e
  style 9a0c3d75_688d_afc5_488e_8fc3d9b66391 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/core/preview/static-preview-server.ts lines 20–92

export default async function createStaticPreviewServer(
	settings: AstroSettings,
	logger: Logger,
): Promise<PreviewServer> {
	const startServerTime = performance.now();

	let previewServer: VitePreviewServer;
	try {
		previewServer = await preview({
			configFile: false,
			base: settings.config.base,
			appType: 'mpa',
			build: {
				outDir: fileURLToPath(settings.config.outDir),
			},
			root: fileURLToPath(settings.config.root),
			preview: {
				host: settings.config.server.host,
				port: settings.config.server.port,
				headers: settings.config.server.headers,
				open: settings.config.server.open,
				allowedHosts: settings.config.server.allowedHosts,
			},
			plugins: [vitePluginAstroPreview(settings)],
		});
	} catch (err) {
		if (err instanceof Error) {
			logger.error(null, err.stack || err.message);
		}
		throw err;
	}

	// Set up shortcuts

	const customShortcuts: Array<vite.CLIShortcut> = [
		// Disable default Vite shortcuts that don't work well with Astro
		{ key: 'r', description: '' },
		{ key: 'u', description: '' },
		{ key: 'c', description: '' },
		{ key: 's', description: '' },
	];

	previewServer.bindCLIShortcuts({
		customShortcuts,
	});

	// Log server start URLs
	logger.info(
		'SKIP_FORMAT',
		msg.serverStart({
			startupTime: performance.now() - startServerTime,
			resolvedUrls: previewServer.resolvedUrls ?? { local: [], network: [] },
			host: settings.config.server.host,
			base: settings.config.base,
		}),
	);

	// Resolves once the server is closed
	function closed() {
		return new Promise<void>((resolve, reject) => {
			previewServer.httpServer.addListener('close', resolve);
			previewServer.httpServer.addListener('error', reject);
		});
	}

	return {
		host: getResolvedHostForHttpServer(settings.config.server.host),
		port: settings.config.server.port,
		closed,
		server: previewServer.httpServer as http.Server,
		stop: previewServer.close.bind(previewServer),
	};
}

Domain

Subdomains

Frequently Asked Questions

What does createStaticPreviewServer() do?
createStaticPreviewServer() is a function in the astro codebase, defined in packages/astro/src/core/preview/static-preview-server.ts.
Where is createStaticPreviewServer() defined?
createStaticPreviewServer() is defined in packages/astro/src/core/preview/static-preview-server.ts at line 20.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free