Home / Class/ CliDebugInfoProvider Class — astro Architecture

CliDebugInfoProvider Class — astro Architecture

Architecture documentation for the CliDebugInfoProvider class in cli-debug-info-provider.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  40d0b18a_b117_e4fa_7678_ae7b5d773d5b["CliDebugInfoProvider"]
  ba2ed2e7_598d_d3c6_77bf_644cc65cf4d9["cli-debug-info-provider.ts"]
  40d0b18a_b117_e4fa_7678_ae7b5d773d5b -->|defined in| ba2ed2e7_598d_d3c6_77bf_644cc65cf4d9
  5c76bc65_2a5e_affb_eb5b_0345b6a693ba["constructor()"]
  40d0b18a_b117_e4fa_7678_ae7b5d773d5b -->|method| 5c76bc65_2a5e_affb_eb5b_0345b6a693ba
  127a0d56_15dd_ef1b_0d10_bcb23419ac98["get()"]
  40d0b18a_b117_e4fa_7678_ae7b5d773d5b -->|method| 127a0d56_15dd_ef1b_0d10_bcb23419ac98

Relationship Graph

Source Code

packages/astro/src/cli/info/infra/cli-debug-info-provider.ts lines 14–76

export class CliDebugInfoProvider implements DebugInfoProvider {
	readonly #config: Pick<AstroConfig, 'output' | 'adapter' | 'integrations'>;
	readonly #astroVersionProvider: AstroVersionProvider;
	readonly #packageManager: PackageManager;
	readonly #operatingSystemProvider: OperatingSystemProvider;
	readonly #nodeVersionProvider: NodeVersionProvider;

	constructor({
		config,
		astroVersionProvider,
		packageManager,
		operatingSystemProvider,
		nodeVersionProvider,
	}: {
		config: Pick<AstroConfig, 'output' | 'adapter' | 'integrations'>;
		astroVersionProvider: AstroVersionProvider;
		packageManager: PackageManager;
		operatingSystemProvider: OperatingSystemProvider;
		nodeVersionProvider: NodeVersionProvider;
	}) {
		this.#config = config;
		this.#astroVersionProvider = astroVersionProvider;
		this.#packageManager = packageManager;
		this.#operatingSystemProvider = operatingSystemProvider;
		this.#nodeVersionProvider = nodeVersionProvider;
	}

	async get(): Promise<DebugInfo> {
		const debugInfo: DebugInfo = [
			['Astro', `v${this.#astroVersionProvider.version}`],
			['Node', this.#nodeVersionProvider.version],
			['System', this.#operatingSystemProvider.displayName],
			['Package Manager', this.#packageManager.name],
			['Output', this.#config.output],
		];

		const viteVersion = await this.#packageManager.getPackageVersion('vite');

		if (viteVersion) {
			debugInfo.splice(1, 0, ['Vite', viteVersion]);
		}

		debugInfo.push([
			'Adapter',
			this.#config.adapter
				? withVersion(
						this.#config.adapter.name,
						await this.#packageManager.getPackageVersion(this.#config.adapter.name),
					)
				: 'none',
		]);

		const integrations = await Promise.all(
			this.#config.integrations.map(async ({ name }) =>
				withVersion(name, await this.#packageManager.getPackageVersion(name)),
			),
		);

		debugInfo.push(['Integrations', integrations.length > 0 ? integrations : 'none']);

		return debugInfo;
	}
}

Domain

Frequently Asked Questions

What is the CliDebugInfoProvider class?
CliDebugInfoProvider is a class in the astro codebase, defined in packages/astro/src/cli/info/infra/cli-debug-info-provider.ts.
Where is CliDebugInfoProvider defined?
CliDebugInfoProvider is defined in packages/astro/src/cli/info/infra/cli-debug-info-provider.ts at line 14.

Analyze Your Own Codebase

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

Try Supermodel Free