defmodule AccessGrid.MixProject do
use Mix.Project
def project do
[
app: :accessgrid,
name: "AccessGrid",
description: "An Elixir client for the AccessGrid API",
version: "0.3.0",
elixir: "~> 1.17",
elixirc_paths: elixirc_paths(Mix.env()),
deps: deps(),
dialyzer: dialyzer(),
docs: docs(),
package: package(),
source_url: "https://github.com/Access-Grid/accessgrid-ex",
homepage_url: "https://accessgrid.com/docs",
start_permanent: Mix.env() == :prod
]
end
defp package do
[
licenses: ["MIT"],
links: %{
"GitHub" => "https://github.com/Access-Grid/accessgrid-ex",
"AccessGrid API Docs" => "https://accessgrid.com/docs"
}
]
end
defp docs do
[
main: "AccessGrid",
extras: [
"guides/testing.md",
"LICENSE"
],
groups_for_modules: [
"API Resources": [
AccessGrid.Console,
AccessGrid.AccessPasses
],
Structs: [
AccessGrid.AccessPass,
AccessGrid.CardTemplate,
AccessGrid.CardTemplate.PublishResult,
AccessGrid.CardTemplate.Result,
AccessGrid.CardTemplate.Summary,
AccessGrid.CardTemplatePair,
AccessGrid.CardTemplatePair.Summary,
AccessGrid.CredentialProfile,
AccessGrid.Event,
AccessGrid.HidOrg,
AccessGrid.IosPreflight,
AccessGrid.LandingPage,
AccessGrid.LedgerItem,
AccessGrid.LedgerItem.AccessPass,
AccessGrid.LedgerItem.CardTemplate,
AccessGrid.SmartTapReveal,
AccessGrid.Webhook
],
Core: [
AccessGrid.Client,
AccessGrid.Types
],
Utilities: [
AccessGrid.Params,
AccessGrid.Utils
],
HTTP: [
AccessGrid.HttpClient,
AccessGrid.HttpClient.Behaviour,
AccessGrid.HttpClient.Req,
AccessGrid.HttpFailure,
AccessGrid.HttpResponse
]
]
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:credo, "~> 1.7", runtime: false, only: [:dev, :test]},
{:dialyxir, "~> 1.4", runtime: false, only: [:dev, :test]},
{:doctor, "~> 0.22", runtime: false, only: [:dev, :test]},
{:ex_doc, "~> 0.40", runtime: false, only: :dev},
{:gestalt, "~> 2.0"},
{:mix_audit, "~> 2.1", runtime: false, only: [:dev, :test]},
{:mix_test_interactive, "~> 5.1", runtime: false, only: [:dev, :test]},
{:mox, "~> 1.2", only: :test},
# Required by Req.Test for HTTP stubbing in tests.
{:plug, "~> 1.14", only: :test},
{:req, "~> 0.5.17"}
]
end
defp dialyzer do
[
plt_add_apps: [:ex_unit, :mix],
plt_add_deps: :app_tree,
plt_core_path: "_build/plts/#{Mix.env()}",
plt_local_path: "_build/plts/#{Mix.env()}"
]
end
end