Home / File/ dev.ts — astro Source File

dev.ts — astro Source File

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

File typescript CoreAstro CoreMiddleware 6 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  792cf06d_c4c5_9609_1e18_7bf79b62efb1["dev.ts"]
  f651f759_e227_9ba0_846c_cd5525810aaa["../core/app/base.js"]
  792cf06d_c4c5_9609_1e18_7bf79b62efb1 --> f651f759_e227_9ba0_846c_cd5525810aaa
  1591294b_c95a_36e5_8df6_92813e83b954["../dev/app.js"]
  792cf06d_c4c5_9609_1e18_7bf79b62efb1 --> 1591294b_c95a_36e5_8df6_92813e83b954
  fa2fbd43_7629_5b9d_8813_6306c2da1dab["./logging.js"]
  792cf06d_c4c5_9609_1e18_7bf79b62efb1 --> fa2fbd43_7629_5b9d_8813_6306c2da1dab
  a4f2698c_5256_262a_ba7c_f72b51878d10["../core/app/types.js"]
  792cf06d_c4c5_9609_1e18_7bf79b62efb1 --> a4f2698c_5256_262a_ba7c_f72b51878d10
  e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"]
  792cf06d_c4c5_9609_1e18_7bf79b62efb1 --> e9b74c5a_8d34_34a7_e196_5e41b87214aa
  7fa0f224_0fa3_4cdf_ea00_731b36139af8["virtual:astro:manifest"]
  792cf06d_c4c5_9609_1e18_7bf79b62efb1 --> 7fa0f224_0fa3_4cdf_ea00_731b36139af8
  style 792cf06d_c4c5_9609_1e18_7bf79b62efb1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { manifest } from 'virtual:astro:manifest';
import type { BaseApp } from '../base.js';
import { DevApp } from '../dev/app.js';
import { createConsoleLogger } from '../logging.js';
import type { RouteInfo } from '../types.js';
import type { RoutesList } from '../../../types/astro.js';

let currentDevApp: DevApp | null = null;

export function createApp(): BaseApp {
	const logger = createConsoleLogger(manifest.logLevel);
	currentDevApp = new DevApp(manifest, true, logger);

	// Listen for route updates via HMR
	if (import.meta.hot) {
		import.meta.hot.on('astro:routes-updated', async () => {
			if (!currentDevApp) return;
			try {
				// Re-import the routes module to get fresh routes
				const { routes: newRoutes } = await import('virtual:astro:routes');
				const newRoutesList: RoutesList = {
					routes: newRoutes.map((r: RouteInfo) => r.routeData),
				};
				currentDevApp.updateRoutes(newRoutesList);
			} catch (e: any) {
				// Log error but don't crash - route updates are non-critical
				logger.error('router', `Failed to update routes via HMR:\n ${e}`);
			}
		});
	}

	return currentDevApp;
}

Domain

Subdomains

Functions

Dependencies

  • ../core/app/base.js
  • ../core/app/types.js
  • ../dev/app.js
  • ../types/astro.js
  • ./logging.js
  • virtual:astro:manifest

Frequently Asked Questions

What does dev.ts do?
dev.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 dev.ts?
dev.ts defines 1 function(s): createApp.
What does dev.ts depend on?
dev.ts imports 6 module(s): ../core/app/base.js, ../core/app/types.js, ../dev/app.js, ../types/astro.js, ./logging.js, virtual:astro:manifest.
Where is dev.ts in the architecture?
dev.ts is located at packages/astro/src/core/app/entrypoint/dev.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/astro/src/core/app/entrypoint).

Analyze Your Own Codebase

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

Try Supermodel Free