Packages
tesla
1.18.3
1.20.0
1.18.3
1.18.2
1.18.1
1.18.0
1.17.0
1.16.0
1.15.3
1.15.2
1.15.1
1.15.0
1.14.3
1.14.2
1.14.1
1.14.0
1.13.2
1.13.1
1.13.0
1.12.3
1.12.2
1.12.1
1.12.0
1.11.2
1.11.1
1.11.0
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.1
retired
1.8.0
1.7.0
1.6.1
1.6.0
1.5.1
1.5.0
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.3
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.0
1.0.0
1.0.0-beta.1
0.10.0
0.9.0
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.2.2
0.2.1
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
HTTP client library, with support for middleware and multiple adapters.
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Tesla.Mixfile do
use Mix.Project
@source_url "https://github.com/elixir-tesla/tesla"
@version "1.18.3"
def project do
[
app: :tesla,
version: @version,
description: description(),
package: package(),
elixir: "~> 1.14",
elixirc_paths: elixirc_paths(Mix.env()),
deps: deps(),
lockfile: lockfile(System.get_env("LOCKFILE")),
test_coverage: [tool: ExCoveralls],
dialyzer: [
plt_core_path: "_build/#{Mix.env()}",
plt_add_apps: [:mix, :inets, :idna, :ssl_verify_fun, :ex_unit],
plt_add_deps: :apps_direct
],
docs: docs(),
preferred_cli_env: [coveralls: :test, "coveralls.html": :test]
]
end
def application do
[extra_applications: [:logger, :ssl, :inets]]
end
defp description do
"HTTP client library, with support for middleware and multiple adapters."
end
defp package do
[
maintainers: ["Tymon Tobolski"],
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/master/CHANGELOG.md"
}
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp lockfile(nil), do: "mix.lock"
defp lockfile(lockfile), do: "test/lockfiles/#{lockfile}.lock"
defp deps do
[
{:mime, "~> 1.0 or ~> 2.0"},
# http clients
{:ibrowse, "4.4.2", optional: true},
# hackney 2.x, 3.x, and 4.0.0 / 4.0.1 are unsupported: they lack exports we rely on
# (`:hackney.body/1,2`, `:hackney.stream_body/1,2`) or have an incomplete streaming API.
{:hackney, "~> 1.21 or ~> 4.0 and >= 4.0.2", optional: true},
{:gun, ">= 1.0.0", optional: true},
{:finch, "~> 0.13", optional: true},
{:castore, "~> 0.1 or ~> 1.0", optional: true},
{:mint, "~> 1.0", optional: true},
# json parsers
{:jason, ">= 1.0.0", optional: true},
{:poison, ">= 1.0.0", optional: true},
{:exjsx, ">= 3.0.0", optional: true},
# messagepack parsers
{:msgpax, "~> 2.3", optional: true},
# other
{:fuse, "~> 2.4", optional: true},
{:telemetry, "~> 0.4 or ~> 1.0", optional: true},
{:mox, "~> 1.0", optional: true},
{:opentelemetry_semantic_conventions, "~> 1.27", optional: true},
{:opentelemetry_api, "~> 1.5", override: true, only: [:dev, :test]},
# devtools
{:opentelemetry_process_propagator, ">= 0.0.0", only: [:test, :dev]},
{:excoveralls, ">= 0.0.0", only: :test, runtime: false},
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
{:mix_test_watch, ">= 0.0.0", only: :dev},
{:dialyxir, ">= 0.0.0", only: [:dev, :test], runtime: false},
{:inch_ex, ">= 0.0.0", only: :docs},
{:benchee, "~> 1.4", only: :dev, runtime: false},
# httparrot dependencies
{:httparrot, "~> 1.4", only: :test},
{:cowlib, "~> 2.9", only: [:dev, :test], override: true},
{:ranch, "~> 2.1", only: :test, override: true}
]
end
defp docs do
[
main: "readme",
source_url: @source_url,
source_ref: "v#{@version}",
skip_undefined_reference_warnings_on: [
"CHANGELOG.md",
"guides/howtos/migrations/v1-macro-migration.md"
],
extra_section: "GUIDES",
logo: "guides/elixir-tesla-logo.png",
extras:
[
"README.md",
LICENSE: [title: "License"]
# TODO: add CHANGELOG.md
# "CHANGELOG.md": [title: "Changelog"]
] ++ Path.wildcard("guides/**/*.{cheatmd,md}"),
groups_for_extras: [
Explanations: ~r"/explanations/",
Cheatsheets: ~r"/cheatsheets/",
"How-To's": ~r"/howtos/"
],
groups_for_modules: [
Behaviours: [
Tesla.Adapter,
Tesla.Middleware
],
OpenAPI: [
Tesla.OpenAPI,
Tesla.OpenAPI.CookieParam,
Tesla.OpenAPI.CookieParams,
Tesla.OpenAPI.HeaderParam,
Tesla.OpenAPI.HeaderParams,
Tesla.OpenAPI.PathParam,
Tesla.OpenAPI.PathParams,
Tesla.OpenAPI.PathTemplate,
Tesla.OpenAPI.QueryParam,
Tesla.OpenAPI.QueryParams,
Tesla.OpenAPI.QueryString,
Tesla.OpenAPI.QueryStringError,
Tesla.OpenAPI.Response
],
Adapters: [~r/Tesla.Adapter./],
Middlewares: [~r/Tesla.Middleware./],
TestSupport: [~r/Tesla.TestSupport./]
],
nest_modules_by_prefix: [
Tesla.Adapter,
Tesla.Middleware
]
]
end
end