defmodule ChannelClient.MixProject do use Mix.Project @version "0.1.1" def project do [ app: :channel_client, version: @version, elixir: "~> 1.15", build_embedded: Mix.env() == :prod, start_permanent: Mix.env() == :prod, description: description(), package: package(), docs: [ extras: ["README.md", "guides/formats.md", "guides/plugs.md", "guides/telemetry.md"], main: "readme", groups_for_extras: [guides: ~r/guides\/.*/] ], deps: deps(), aliases: aliases() ] end def application do [ extra_applications: [:logger, :ssl], mod: {ChannelClient, []} ] end defp deps do [ {:telemetry, "~> 1.4"}, {:websocket_client, "~> 1.6"}, {:jason, "~> 1.4", optional: true}, {:toon_ex, "~> 1.5", optional: true}, {:phoenix, "~> 1.8", only: :test}, {:plug_cowboy, "~> 2.9", only: :test}, {:ex_doc, "~> 0.40", only: :dev}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev], runtime: false}, {:ex_dna, "~> 1.5", only: [:dev, :test], runtime: false} ] end defp description do """ Phoenix Channels client. Support JSON/TOON/BTOON format. """ end defp package do [ licenses: ["Apache-2.0"], links: %{"GitHub" => "https://github.com/ohhi-vn/channel_client"} ] end defp aliases do [ "quality.ci": [ "format --check-formatted", "credo --strict", "dialyzer" ], precommit: ["compile --warning-as-errors", "deps.unlock --unused", "format", "test"], # Testing & Coverage coveralls: ["test --cover", "coveralls.html"], # Code Quality quality: ["format --check-formatted", "credo --strict", "dialyzer"] ] end end