Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/ProcessManagement/NodeResolver/
TryVolta.rs

1//! Volta shim lookup. `VOLTA_HOME` wins; otherwise `~/.volta`. Volta installs
2//! shim binaries under `<VOLTA_HOME>/bin`.
3
4use std::path::PathBuf;
5
6use crate::ProcessManagement::NodeResolver::{NodeExecutableName, NodeSource, ResolvedNode};
7
8pub fn Fn() -> Option<ResolvedNode::Struct> {
9	let VoltaHome = std::env::var("VOLTA_HOME").ok().or_else(|| {
10		std::env::var("HOME")
11			.ok()
12			.map(|H| PathBuf::from(H).join(".volta").to_string_lossy().into_owned())
13	})?;
14
15	let ShimCandidate = PathBuf::from(&VoltaHome).join("bin").join(NodeExecutableName::Fn());
16
17	if ShimCandidate.exists() {
18		return Some(ResolvedNode::Struct { Path:ShimCandidate, Source:NodeSource::Enum::Volta });
19	}
20
21	None
22}