%% -*- mode: erlang;erlang-indent-level: 2;indent-tabs-mode: nil -*-
%% ex: ts=4 sw=4 ft=erlang et

%% == Erlang Compiler ==

%% Erlang compiler options
{erl_opts, [ warn_unused_vars
           , warnings_as_errors
           , ewarn_export_all
           , warn_shadow_vars
           , warn_unused_import
           , warn_unused_function
           , warn_bif_clash
           , warn_unused_record
           , warn_deprecated_function
           , warn_obsolete_guard
           , strict_validation
           , warn_export_vars
           , warn_exported_vars
           , warn_missing_spec
           , warn_untyped_record
           , debug_info
           , {parse_transform, lager_transform}
           ]}.

%% == Dependencies ==

{deps, [ {goldrush, "0.1.9"}
       , {lager,    "3.8.0"}
       , {jsx,      "2.10.0"}
       , {hackney,  "1.16.0"}
       ]}.

%% == Profiles ==

{profiles, [
  {test, [
    {plugins, [ {rebar3_lint, "0.2.0"}
    ]},
    {deps, [ {meck,        "0.8.13"}
           , {katana_test, "1.0.1"}
           , {mixer,       "1.1.0", {pkg, inaka_mixer}}
    ]}
  ]}
]}.

%% == Common Test ==

{ct_compile_opts, [ warn_unused_vars
                  , warn_export_all
                  , warn_shadow_vars
                  , warn_unused_import
                  , warn_unused_function
                  , warn_bif_clash
                  , warn_unused_record
                  , warn_deprecated_function
                  , warn_obsolete_guard
                  , strict_validation
                  , warn_export_vars
                  , warn_exported_vars
                  , warn_missing_spec
                  , warn_untyped_record
                  , debug_info
                  , {parse_transform, lager_transform}
                  ]}.

%% == Overrides ==

{overrides, [{add, jsx, [{erl_opts, [{d, maps_always}]}]}]}.

%% == Cover ==

{cover_enabled, true}.

{cover_opts, [verbose]}.

%% == Dialyzer ==

{dialyzer, [ {warnings, [ no_return
                        , unmatched_returns
                        , error_handling
                        , unknown
                        ]}
           , {plt_apps, top_level_deps}
           , {plt_extra_apps, []}
           , {plt_location, local}
           , {base_plt_apps, [erts, stdlib, kernel]}
           , {base_plt_location, global}]}.

{project_plugins, [rebar3_hex]}.
