Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/ProcessManagement/NodeResolver/
NodeSource.rs

1//! Where the resolved Node binary came from. Ordered by preference (override
2//! first, PATH last). `AsLabel` returns the lowercase ident used in log
3//! lines.
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
6pub enum Enum {
7	/// `Pick` environment variable.
8	Override,
9
10	/// Shipped with Mountain - `Resources/Node/bin/node` or dev-tree
11	/// equivalent.
12	Shipped,
13
14	/// fnm's `current/bin/node`.
15	Fnm,
16
17	/// Volta's `tools/image/node/<version>/bin/node`.
18	Volta,
19
20	/// asdf's `shims/node` - resolves via `.tool-versions`.
21	Asdf,
22
23	/// nvm's `versions/node/<default>/bin/node`.
24	Nvm,
25
26	/// Homebrew - `/opt/homebrew/bin/node` (Apple Silicon) or
27	/// `/usr/local/bin/node` (Intel macOS / Linuxbrew).
28	Homebrew,
29
30	/// PATH-resolved `node` - last-resort fallback.
31	Path,
32}
33
34impl Enum {
35	pub fn AsLabel(self) -> &'static str {
36		match self {
37			Self::Override => "override",
38
39			Self::Shipped => "shipped",
40
41			Self::Fnm => "fnm",
42
43			Self::Volta => "volta",
44
45			Self::Asdf => "asdf",
46
47			Self::Nvm => "nvm",
48
49			Self::Homebrew => "homebrew",
50
51			Self::Path => "path",
52		}
53	}
54}