Home / Function/ createPreviewServer() — astro Function Reference

createPreviewServer() — astro Function Reference

Architecture documentation for the createPreviewServer() function in preview.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  1e83288b_e626_faf6_40e6_9dd61efff0ed["createPreviewServer()"]
  0e850bda_fb21_6bc2_df97_aab29717b7c7["preview.ts"]
  1e83288b_e626_faf6_40e6_9dd61efff0ed -->|defined in| 0e850bda_fb21_6bc2_df97_aab29717b7c7
  6445b6ff_b146_6b78_6eb7_90f8bc42caf7["serverStart()"]
  1e83288b_e626_faf6_40e6_9dd61efff0ed -->|calls| 6445b6ff_b146_6b78_6eb7_90f8bc42caf7
  style 1e83288b_e626_faf6_40e6_9dd61efff0ed fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/integrations/cloudflare/src/entrypoints/preview.ts lines 15–95

const createPreviewServer: CreatePreviewServer = async ({
	logger,
	base,
	server,
	headers,
	port,
	host,
	root,
}) => {
	const startServerTime = performance.now();
	let previewServer: VitePreviewServer;
	const cfPluginConfig: PluginConfig = {
		viteEnvironment: { name: 'ssr' },
		config: cloudflareConfigCustomizer(),
	};

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

	// Set up shortcuts

	const customShortcuts: Array<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(
		serverStart({
			startupTime: performance.now() - startServerTime,
			resolvedUrls: previewServer.resolvedUrls ?? { local: [], network: [] },
			host,
			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,
		port,
		closed,
		server: previewServer.httpServer as http.Server,
		stop: previewServer.close.bind(previewServer),
	};
};

Domain

Subdomains

Frequently Asked Questions

What does createPreviewServer() do?
createPreviewServer() is a function in the astro codebase, defined in packages/integrations/cloudflare/src/entrypoints/preview.ts.
Where is createPreviewServer() defined?
createPreviewServer() is defined in packages/integrations/cloudflare/src/entrypoints/preview.ts at line 15.
What does createPreviewServer() call?
createPreviewServer() calls 1 function(s): serverStart.

Analyze Your Own Codebase

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

Try Supermodel Free