# shellcheck shell=dash

___x_cmd_bun_add(){
    [ $# -gt 0 ]    ||  set -- --nv

    local op="$1";      shift
    case "$op" in
        --nv)       ___x_cmd_bun_add___nv             "$@" ;;
        *)          ___x_cmd_bun___cmd bun add  "$op" "$@" ;;
    esac
}


___x_cmd_bun_add___nv(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_manual; then
        ___x_cmd_bun_add___nv_app
    else
        ___x_cmd_bun_add___nv_list
    fi
}

___x_cmd_bun_add___nv_list(){
    ___x_cmd npm install --nv
}

___x_cmd_bun_add___nv_app(){
    local x_
    ___X_CMD_PICK_SHBIN_CODE="xrc bun" \
    ___x_cmd storeread_     ___x_cmd pick --ctrl-c-clear --width 50 --col 6     ___x_cmd_bun_add___nv_list
    local pkg="$x_"

    [ -n "$pkg" ] || N=bun M="ABORT because no pkg is selected" log:ret:1

    local id=
    local cmd=
    ___x_cmd ui select id,cmd  "Next for   $pkg"   \
        "x bun add --save       $pkg"       \
        "x bun add              $pkg"       \
        "x bun add -g           $pkg"       \
        "x bun add --save-dev   $pkg"       \
        "x npm info             $pkg"       \
        "x npm search           $pkg"       \
        "x open https://www.npmjs.com/package/$pkg" \
        "return 1" || return 1

    eval "$cmd"
}

