Home / Function/ getPackageManager() — astro Function Reference

getPackageManager() — astro Function Reference

Architecture documentation for the getPackageManager() function in get-package-manager.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  23a4f9c6_fb4a_42ab_1a93_61e8a34e49f1["getPackageManager()"]
  22c0ddd6_f345_a556_028e_2b30a6946666["get-package-manager.ts"]
  23a4f9c6_fb4a_42ab_1a93_61e8a34e49f1 -->|defined in| 22c0ddd6_f345_a556_028e_2b30a6946666
  style 23a4f9c6_fb4a_42ab_1a93_61e8a34e49f1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/cli/info/core/get-package-manager.ts lines 9–43

export async function getPackageManager({
	packageManagerUserAgentProvider,
	commandExecutor,
}: Options): Promise<PackageManager> {
	if (!packageManagerUserAgentProvider.userAgent) {
		const { NoopPackageManager } = await import('../infra/noop-package-manager.js');
		return new NoopPackageManager();
	}
	const specifier = packageManagerUserAgentProvider.userAgent.split(' ')[0];
	const _name = specifier.substring(0, specifier.lastIndexOf('/'));
	const name = _name === 'npminstall' ? 'cnpm' : _name;

	switch (name) {
		case 'pnpm': {
			const { PnpmPackageManager } = await import('../infra/pnpm-package-manager.js');
			return new PnpmPackageManager({ commandExecutor });
		}
		case 'npm': {
			const { NpmPackageManager } = await import('../infra/npm-package-manager.js');
			return new NpmPackageManager({ commandExecutor });
		}
		case 'yarn': {
			const { YarnPackageManager } = await import('../infra/yarn-package-manager.js');
			return new YarnPackageManager({ commandExecutor });
		}
		case 'bun': {
			const { BunPackageManager } = await import('../infra/bun-package-manager.js');
			return new BunPackageManager();
		}
		default: {
			const { NoopPackageManager } = await import('../infra/noop-package-manager.js');
			return new NoopPackageManager();
		}
	}
}

Domain

Subdomains

Frequently Asked Questions

What does getPackageManager() do?
getPackageManager() is a function in the astro codebase, defined in packages/astro/src/cli/info/core/get-package-manager.ts.
Where is getPackageManager() defined?
getPackageManager() is defined in packages/astro/src/cli/info/core/get-package-manager.ts at line 9.

Analyze Your Own Codebase

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

Try Supermodel Free