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 if let Some(Found) = TryShipped::Fn(ApplicationHandle) {
30 return Found;
31 }
32 if let Some(Found) = TryFnm::Fn() {
33 return Found;
34 }
35 if let Some(Found) = TryVolta::Fn() {
36 return Found;
37 }
38 if let Some(Found) = TryAsdf::Fn() {
39 return Found;
40 }
41 if let Some(Found) = TryNvm::Fn() {
42 return Found;
43 }
44 if let Some(Found) = TryHomebrew::Fn() {
45 return Found;
46 }
47
48 dev_log!(
49 "cocoon",
50 "[NodeResolver] No specific install found; falling back to `node` on PATH"
51 );
52
53 ResolvedNode::Struct { Path:PathBuf::from("node"), Source:NodeSource::Enum::Path }
54}