# shellcheck shell=dash

x log init ja
xrc:mod:lib ja      kp kpo share/index json2csv

___x_cmd_ja___main(){
    if [ $# -eq 0 ]; then
        ___x_cmd_ja___normalize_stream
        return
    fi

    local op="$1";      shift

    case "$op" in
        data)                       ___x_cmd_ja_data            "$@" ;;

        n|normalize)                ___x_cmd_ja_normalize       "$@" ;;
        t|tokenize)                 ___x_cmd_ja_tokenize        "$@" ;;
        tc|tokenizebycomma)         ___x_cmd_ja_tokenizebycomma "$@" ;;
        f|fmt)                      ___x_cmd_ja_fmt             "$@" ;;
        color)                      ___x_cmd_ja_color           "$@" ;;
        2y|toyml)                   ___x_cmd_ja_toyml           "$@" ;;
        2c|tocsv)                   ___x_cmd_ja_json_tocsv      "$@" ;;

        jl|jlist)                   ___x_cmd_ja_jlist           "$@" ;;

        jl2c|jlist2csv)             ___x_cmd_ja_jlist_tocsv     "$@" ;;
        jl2t|jlist2tsv)             ___x_cmd_ja_jlist_totsv     "$@" ;;

        # \{*|\[*)                  ___x_cmd_ja___normalize_argstring   "$@" ;;

        kp)                         ___x_cmd_ja_kp              "$@" ;;           # just extract keypath, provide jstr
        kpo)                        ___x_cmd_ja_kpo             "$@" ;;          # extract keypath, but also provide utils, provide jstr

        -h|--help)                  x help -m ja                     ;;

        *)                          ___x_cmd_ja_kpo "$op"       "$@" ;;
    esac
}
