Home / File/ index.ts — astro Source File

index.ts — astro Source File

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

File typescript CoreAstro RenderingEngine 5 imports 2 functions

Entity Profile

Dependency Diagram

graph LR
  cc8fbb35_1ca2_28c0_bb28_ec7e616c6eee["index.ts"]
  ea387312_d0a2_bb52_dafc_3872f7307f95["../../src/assets/fonts/types.js"]
  cc8fbb35_1ca2_28c0_bb28_ec7e616c6eee --> ea387312_d0a2_bb52_dafc_3872f7307f95
  bf5441b3_b825_f070_aed3_a0f2ac54caa3["../core/routing/manifest/create.js"]
  cc8fbb35_1ca2_28c0_bb28_ec7e616c6eee --> bf5441b3_b825_f070_aed3_a0f2ac54caa3
  e6591dc4_f998_7dbc_3c66_06ac5ec7fba0["../../core/session/types.js"]
  cc8fbb35_1ca2_28c0_bb28_ec7e616c6eee --> e6591dc4_f998_7dbc_3c66_06ac5ec7fba0
  c32d12e2_d85e_28c0_eea7_9b29629857e0["../types/public/config.js"]
  cc8fbb35_1ca2_28c0_bb28_ec7e616c6eee --> c32d12e2_d85e_28c0_eea7_9b29629857e0
  263e522e_1aa5_ebc3_e7d6_45ebc51671f7["vite"]
  cc8fbb35_1ca2_28c0_bb28_ec7e616c6eee --> 263e522e_1aa5_ebc3_e7d6_45ebc51671f7
  style cc8fbb35_1ca2_28c0_bb28_ec7e616c6eee fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { UserConfig as ViteUserConfig, UserConfigFn as ViteUserConfigFn } from 'vite';
import type { FontProvider } from '../assets/fonts/types.js';
import { createRoutesList } from '../core/routing/manifest/create.js';
import type { SessionDriverConfig, SessionDriverName } from '../core/session/types.js';
import type { AstroInlineConfig, AstroUserConfig, Locales } from '../types/public/config.js';

/**
 * See the full Astro Configuration API Documentation
 * https://astro.build/config
 */
export function defineConfig<
	const TLocales extends Locales = never,
	const TDriver extends SessionDriverName | SessionDriverConfig = never,
	const TFontProviders extends Array<FontProvider> = never,
>(config: AstroUserConfig<TLocales, TDriver, TFontProviders>) {
	return config;
}

/**
 * Use Astro to generate a fully resolved Vite config
 */
export function getViteConfig(
	userViteConfig: ViteUserConfig,
	inlineAstroConfig: AstroInlineConfig = {},
): ViteUserConfigFn {
	// Return an async Vite config getter which exposes a resolved `mode` and `command`
	return async ({ mode, command }) => {
		// Vite `command` is `serve | build`, but Astro uses `dev | build`
		const cmd = command === 'serve' ? 'dev' : 'build';

		// Use dynamic import to avoid pulling in deps unless used
		const [
			{ mergeConfig },
			{ createNodeLogger },
			{ resolveConfig, createSettings },
			{ createVite },
			{ runHookConfigSetup, runHookConfigDone },
		] = await Promise.all([
			import('vite'),
			import('../core/config/logging.js'),
			import('../core/config/index.js'),
			import('../core/create-vite.js'),
			import('../integrations/hooks.js'),
		]);
		const logger = createNodeLogger(inlineAstroConfig);
		const { astroConfig: config } = await resolveConfig(inlineAstroConfig, cmd);
		let settings = await createSettings(config, inlineAstroConfig.logLevel, userViteConfig.root);
		settings = await runHookConfigSetup({ settings, command: cmd, logger });
		const routesList = await createRoutesList(
			{
				settings,
			},
			logger,
			{ dev: true, skipBuildOutputAssignment: false },
		);
		const viteConfig = await createVite(
			{},
			{ routesList, settings, command: cmd, logger, mode, sync: false },
		);
		await runHookConfigDone({ settings, logger });
		return mergeConfig(viteConfig, userViteConfig);
	};
}

Domain

Subdomains

Dependencies

  • ../../core/session/types.js
  • ../../src/assets/fonts/types.js
  • ../core/routing/manifest/create.js
  • ../types/public/config.js
  • vite

Frequently Asked Questions

What does index.ts do?
index.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 index.ts?
index.ts defines 2 function(s): defineConfig, getViteConfig.
What does index.ts depend on?
index.ts imports 5 module(s): ../../core/session/types.js, ../../src/assets/fonts/types.js, ../core/routing/manifest/create.js, ../types/public/config.js, vite.
Where is index.ts in the architecture?
index.ts is located at packages/astro/src/config/index.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/config).

Analyze Your Own Codebase

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

Try Supermodel Free