@@ -395,6 +395,14 @@ function hg_prompt_vars() {
395395}
396396
397397function node_command_version_prompt() {
398+ # Set to 'true' to only show node version in directories with package.json
399+ NODE_VERSION_CHECK_PROJECT=" ${NODE_VERSION_CHECK_PROJECT:- false} "
400+
401+ # If NODE_VERSION_CHECK_PROJECT is enabled, only show version in Node.js projects
402+ if [[ " ${NODE_VERSION_CHECK_PROJECT} " == " true" ]] && ! _is_node_project; then
403+ return 0
404+ fi
405+
398406 local node_version
399407 if _command_exists node; then
400408 node_version=" $( node --version 2> /dev/null) "
@@ -421,11 +429,33 @@ function node_native_version_prompt() {
421429 fi
422430}
423431
432+ function _is_node_project() {
433+ # Check if we're in a Node.js project by looking for package.json
434+ # Search current directory and parent directories up to $HOME
435+ local dir=" ${PWD} "
436+ while [[ " ${dir} " != " ${HOME-} " && " ${dir} " != " /" ]]; do
437+ if [[ -f " ${dir} /package.json" ]]; then
438+ return 0
439+ fi
440+ dir=$( dirname " ${dir} " )
441+ done
442+ # Also check $HOME itself
443+ [[ -f " ${HOME-} /package.json" ]] && return 0
444+ return 1
445+ }
446+
424447function node_version_prompt() {
425448 NODE_VERSION_STRATEGY=" ${NODE_VERSION_STRATEGY:- nvm} "
449+ # Set to 'true' to only show node version in directories with package.json
450+ NODE_VERSION_CHECK_PROJECT=" ${NODE_VERSION_CHECK_PROJECT:- false} "
426451
427452 _log_debug " node: using version strategy '$NODE_VERSION_STRATEGY '"
428453
454+ # If NODE_VERSION_CHECK_PROJECT is enabled, only show version in Node.js projects
455+ if [[ " ${NODE_VERSION_CHECK_PROJECT} " == " true" ]] && ! _is_node_project; then
456+ return 0
457+ fi
458+
429459 if [ " $NODE_VERSION_STRATEGY " == " nvm" ]; then
430460 nvm_version_prompt
431461 elif [ " $NODE_VERSION_STRATEGY " == " node" ]; then
0 commit comments