Home / Function/ getPackageVersion() — astro Function Reference

getPackageVersion() — astro Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  3ea329e9_8342_912a_0889_ba8ee25da467["getPackageVersion()"]
  14d9faaa_2947_8b30_11ed_1493b5e0d8cf["PnpmPackageManager"]
  3ea329e9_8342_912a_0889_ba8ee25da467 -->|defined in| 14d9faaa_2947_8b30_11ed_1493b5e0d8cf
  3944172f_8e8b_08f3_ab5d_dc54d9ff8324["formatPnpmVersionOutput()"]
  3ea329e9_8342_912a_0889_ba8ee25da467 -->|calls| 3944172f_8e8b_08f3_ab5d_dc54d9ff8324
  style 3ea329e9_8342_912a_0889_ba8ee25da467 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/cli/info/infra/pnpm-package-manager.ts lines 21–47

	async getPackageVersion(name: string): Promise<string | undefined> {
		try {
			// https://pnpm.io/cli/why
			const { stdout } = await this.#commandExecutor.execute('pnpm', ['why', name, '--json'], {
				shell: true,
			});

			const parsedOutput = JSON.parse(stdout) as Array<BareNpmLikeVersionOutput>;

			const deps = parsedOutput[0].dependencies;

			if (parsedOutput.length === 0 || !deps) {
				return undefined;
			}

			const userProvidedDependency = deps[name];

			if (userProvidedDependency) {
				return formatPnpmVersionOutput(userProvidedDependency.version);
			}

			const astroDependency = deps.astro?.dependencies[name];
			return astroDependency ? formatPnpmVersionOutput(astroDependency.version) : undefined;
		} catch {
			return undefined;
		}
	}

Domain

Subdomains

Frequently Asked Questions

What does getPackageVersion() do?
getPackageVersion() is a function in the astro codebase, defined in packages/astro/src/cli/info/infra/pnpm-package-manager.ts.
Where is getPackageVersion() defined?
getPackageVersion() is defined in packages/astro/src/cli/info/infra/pnpm-package-manager.ts at line 21.
What does getPackageVersion() call?
getPackageVersion() calls 1 function(s): formatPnpmVersionOutput.

Analyze Your Own Codebase

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

Try Supermodel Free