function nvm_compat_detect -d "Detect available Node.js version managers" set -l managers if command -q nvm set managers $managers nvm end if command -q fnm set managers $managers fnm end if command -q volta set managers $managers volta end if command -q asdf; and test -f ~/.tool-versions if grep -q nodejs ~/.tool-versions 2>/dev/null set managers $managers asdf end end if test (count $managers) -eq 0 echo "No supported Node.js version managers found" return 1 end echo "Available managers:" (string join ", " $managers) echo $managers end function nvm_compat_use -a manager version -d "Use specified version with detected manager" if test -z "$manager" -o -z "$version" echo "Usage: nvm_compat_use " return 1 end switch $manager case nvm nvm use $version; or return $status case fnm fnm use $version; or return $status case volta volta pin node@$version; or return $status case asdf asdf local nodejs $version; or return $status case '*' echo "Unsupported manager: $manager" return 1 end end function nvm_compat_install -a manager version -d "Install specified version with detected manager" if test -z "$manager" -o -z "$version" echo "Usage: nvm_compat_install " return 1 end switch $manager case nvm nvm install $version; or return $status case fnm fnm install $version; or return $status case volta volta install node@$version; or return $status case asdf asdf install nodejs $version; or return $status case '*' echo "Unsupported manager: $manager" return 1 end end