Home / Function/ createTempViteServer() — astro Function Reference

createTempViteServer() — astro Function Reference

Architecture documentation for the createTempViteServer() function in index.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  715d442f_80b1_3302_fab4_3ac829fe828b["createTempViteServer()"]
  cd488d83_5ad0_f34a_227f_731e9945a152["index.ts"]
  715d442f_80b1_3302_fab4_3ac829fe828b -->|defined in| cd488d83_5ad0_f34a_227f_731e9945a152
  2523437b_c067_5714_7895_f8fb9bc10862["syncInternal()"]
  2523437b_c067_5714_7895_f8fb9bc10862 -->|calls| 715d442f_80b1_3302_fab4_3ac829fe828b
  style 715d442f_80b1_3302_fab4_3ac829fe828b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/core/sync/index.ts lines 223–276

async function createTempViteServer(
	settings: AstroSettings,
	{ mode, logger, fs }: Required<Pick<SyncOptions, 'mode' | 'logger' | 'fs'>>,
): Promise<ViteDevServer> {
	const routesList = await createRoutesList(
		{
			settings,
			fsMod: fs,
		},
		logger,
		{ dev: true, skipBuildOutputAssignment: true },
	);

	const tempViteServer = await createServer(
		await createVite(
			{
				server: { middlewareMode: true, hmr: false, watch: null, ws: false },
				optimizeDeps: { noDiscovery: true },
				ssr: { external: [] },
				logLevel: 'silent',
			},
			{
				routesList,
				settings: {
					...settings,
					// Prevent mutation by vite plugins during sync
					buildOutput: undefined,
					// Sync causes font resources and style hashes to be duplicated
					injectedCsp: {
						fontResources: new Set(),
						styleHashes: [],
					},
				},
				logger,
				mode,
				command: 'build',
				fs,
				sync: true,
			},
		),
	);

	// Patch `hot.send` to bubble up error events
	// `hot.on('error')` does not fire for some reason
	const hotSend = tempViteServer.environments.client.hot.send;
	tempViteServer.environments.client.hot.send = (payload: HotPayload) => {
		if (payload.type === 'error') {
			throw payload.err;
		}
		return hotSend(payload);
	};

	return tempViteServer;
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does createTempViteServer() do?
createTempViteServer() is a function in the astro codebase, defined in packages/astro/src/core/sync/index.ts.
Where is createTempViteServer() defined?
createTempViteServer() is defined in packages/astro/src/core/sync/index.ts at line 223.
What calls createTempViteServer()?
createTempViteServer() is called by 1 function(s): syncInternal.

Analyze Your Own Codebase

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

Try Supermodel Free