Home / File/ server-state.ts — astro Source File

server-state.ts — astro Source File

Architecture documentation for server-state.ts, a typescript file in the astro codebase.

Entity Profile

Relationship Graph

Source Code

type ErrorState = 'fresh' | 'error';

interface RouteState {
	state: ErrorState;
	error?: Error;
}

export interface ServerState {
	routes: Map<string, RouteState>;
	state: ErrorState;
	error?: Error;
}

export function createServerState(): ServerState {
	return {
		routes: new Map(),
		state: 'fresh',
	};
}

export function setRouteError(
	serverState: ServerState,
	pathname: string,
	error: Error | undefined,
) {
	if (serverState.routes.has(pathname)) {
		const routeState = serverState.routes.get(pathname)!;
		routeState.state = 'error';
		routeState.error = error;
	} else {
		const routeState: RouteState = {
			state: 'error',
			error: error,
		};
		serverState.routes.set(pathname, routeState);
	}
	serverState.state = 'error';
	serverState.error = error;
}

export function setServerError(serverState: ServerState, error: Error) {
	serverState.state = 'error';
	serverState.error = error;
}

export function clearRouteError(serverState: ServerState, pathname: string) {
	if (serverState.routes.has(pathname)) {
		serverState.routes.delete(pathname);
	}
	serverState.state = 'fresh';
	serverState.error = undefined;
}

Domain

Subdomains

Frequently Asked Questions

What does server-state.ts do?
server-state.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RenderingEngine subdomain.
What functions are defined in server-state.ts?
server-state.ts defines 4 function(s): clearRouteError, createServerState, setRouteError, setServerError.
Where is server-state.ts in the architecture?
server-state.ts is located at packages/astro/src/vite-plugin-astro-server/server-state.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/vite-plugin-astro-server).

Analyze Your Own Codebase

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

Try Supermodel Free