Mountain/ProcessManagement/NodeResolver/
ResolveUncached.rs1
2use std::path::PathBuf;
6
7use tauri::{AppHandle, Runtime};
8
9use crate::{
10 ProcessManagement::NodeResolver::{
11 NodeSource,
12 ResolvedNode,
13 TryAsdf,
14 TryFnm,
15 TryHomebrew,
16 TryNvm,
17 TryOverride,
18 TryShipped,
19 TryVolta,
20 },
21 dev_log,
22};
23
24pub fn Fn<R:Runtime>(ApplicationHandle:&AppHandle<R>) -> ResolvedNode::Struct {
25 if let Some(Found) = TryOverride::Fn() {
26 return Found;
27 }
28
29 if let Some(Found) = TryShipped::Fn(ApplicationHandle) {
30 return Found;
31 }
32
33 if let Some(Found) = TryFnm::Fn() {
34 return Found;
35 }
36
37 if let Some(Found) = TryVolta::Fn() {
38 return Found;
39 }
40
41 if let Some(Found) = TryAsdf::Fn() {
42 return Found;
43 }
44
45 if let Some(Found) = TryNvm::Fn() {
46 return Found;
47 }
48
49 if let Some(Found) = TryHomebrew::Fn() {
50 return Found;
51 }
52
53 dev_log!(
54 "cocoon",
55 "[NodeResolver] No specific install found; falling back to `node` on PATH"
56 );
57
58 ResolvedNode::Struct { Path:PathBuf::from("node"), Source:NodeSource::Enum::Path }
59}