defmodule Immich.MixProject do use Mix.Project def project do [ app: :ex_immich, version: "0.2.0", package: package(), elixir: "~> 1.19", start_permanent: Mix.env() == :prod, elixirc_paths: elixirc_paths(Mix.env()), test_coverage: test_coverage(), aliases: aliases(), deps: deps() ] end def application do [ extra_applications: [:logger] ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] def cli do [ preferred_envs: [ precommit: :test, release: :prod, dialyzer: :dev, lint: :dev ] ] end defp deps do [ {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:bandit, "~> 1.5", only: :test}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.40", only: :dev, runtime: false}, {:mox, "~> 1.1", only: :test, runtime: false}, {:jason, "~> 1.2"}, {:req, "~> 0.5.17"} ] end defp aliases do [ lint: ["format --check-formatted", "credo --strict", "dialyzer"], precommit: [ "compile --warnings-as-errors", "deps.unlock --unused", "format", "test" ] ] end defp test_coverage do [ summary: [threshold: 90], ignore_modules: [] ] end defp package do [ description: "An Elixir client for the Immich API", licenses: ["MIT"], links: %{} ] end end