{deps, [
    gun
]}.

{project_plugins, [
    rebar3_ex_doc,
    {rebar3_gpb_plugin, "2.23.2"},
    {rebar3_egrpc_plugin, {git, "https://github.com/belltoy/rebar3_egrpc_plugin.git", {branch, "main"}}}
]}.

{provider_hooks, [
    {pre, [
        {compile, {protobuf, compile}},
        {clean, {protobuf, clean}}
    ]}
]}.

{gpb_opts, [
    {module_name_prefix, "egrpc_"},
    {module_name_suffix, "_pb"},
    {recursive, true},

    {json, true},
    {json_format, maps},
    {json_object_format, map},
    {json_key_format, atom},
    {json_array_format, list},
    {json_string_format, binary},
    {json_null, undefined},

    {i, "priv/protos/"},
    {ipath, "_build/default/plugins/gpb/priv/proto3/"},
    {ipath, "priv/protos/"},
    use_packages,
    {o_erl, "src/protos"},
    {o_hrl, "include"},
    {strings_as_binaries, true},
    maps,
    {maps_unset_optional, omitted},
    type_specs
]}.

{egrpc_opts, [
    {out_dir, "src/clients"},
    {module_name_prefix, "egrpc_"},
    {module_name_suffix, "_client"},
    {protos, "priv/protos/"}
]}.

{xref_ignores, [
    egrpc_health_pb,
    egrpc_reflection_v1_pb,
    egrpc_reflection_v1alpha_pb
]}.

{shell, [
    % {config, "config/sys.dev.config"},
    {apps, [egrpc]}
]}.

{dialyzer, [
    {plt_extra_apps, [ssl, public_key]}
]}.

{hex, [{doc, ex_doc}]}.

{ex_doc, [
          {source_url, <<"https://github.com/belltoy/egrpc">>},
          {extras, [<<"README.md">>, <<"LICENSE.md">>]},
          {main, <<"readme">>}]}.
