# shellcheck    shell=dash

___x_cmd_deno___setarg_(){
    x_=""
    local i=1
    local justadd=

    # parse run subcmd options
    # while [ "$#" -gt 0 ]; do
    #     case "$1" in
    #         -*)     x_="$x_ \"\$$i\""; shift; i=$((i+1)) ;;
    #         # run)    x_="$x_ \"\$$i\""; shift; i=$((i+1)); break   ;;
    #         *)      x_="";             return ;;
    #     esac
    # done

    while [ "$#" -gt 0 ]; do
        if [ -n "$justadd" ]; then
            x_="$x_ \"\${$i}\""
        else
            case "$1" in
                -c|--config|--cert|--lock|--seed)
                            x_="$x_ \"\${$i}\" \"\$$((i+1))\""
                            shift 2
                            i=$((i+2))
                            continue            ;;

                -*)         x_="$x_ \"\${$i}\""   ;;
                npm:*)
                            x_="$x_ \"\${$i}\""
                            justadd=1           ;;
                *)
                            if ___x_cmd_deno___which_one "$1"; then
                                deno:debug "Found file ==> $___X_CMD_DENO_WHICHFILE"
                                x_="$x_ \"\$___X_CMD_DENO_WHICHFILE\""
                                justadd=1
                            else
                                x_=""
                                deno:error "Abort because file path is unknown ==> $1"
                                deno:error "If you want more log ==> x log +deno"
                                return 1
                            fi
            esac
        fi
        shift
        i=$((i+1))
    done
}

___x_cmd_deno___which_one(){
    local ___X_CMD_WHICH_ONE_RESULT=""
    case "$1" in
        http://*|https://*)
            ___X_CMD_DENO_WHICHFILE="$1"
            ;;
        *)
            if ___x_cmd_which_one "$1" 2>/dev/null && [ "$___X_CMD_WHICH_ONE_RESOURCE_TYPE" != "official" ]; then
                ___X_CMD_DENO_WHICHFILE="$___X_CMD_WHICH_ONE_RESULT"
            else
                return 1
            fi
            ;;
    esac
}
