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