Packages
electric_client
0.1.0-dev-13
0.10.3
0.10.2
0.10.1
0.10.1-beta-1
0.10.0
0.9.5-beta-1
0.9.4
0.9.4-beta-1
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.3-beta-1
0.8.2
0.8.1
0.8.0
0.8.0-beta-1
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.5-beta-5
0.6.5-beta-4
0.6.5-beta-3
0.6.5-beta-2
0.6.5-beta-1
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.5.0-beta-1
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.3.0-beta.4
0.3.0-beta.3
0.3.0-beta.2
0.2.6-pre-1
retired
0.2.6-beta.1
0.2.6-beta.0
0.2.5
0.2.4
0.2.4-pre-8
0.2.4-pre-7
0.2.4-pre-6
0.2.4-pre-5
0.2.4-pre-4
0.2.4-pre-3
0.2.4-pre-2
0.2.4-pre-1
0.2.3
0.2.3-rc-1
0.2.2
0.2.2-rc-1
0.2.1
0.2.1-rc-3
0.2.1-rc-2
0.2.1-rc-1
0.2.0
0.1.2
0.1.1
0.1.0
0.1.0-dev-9
0.1.0-dev-8
0.1.0-dev-7
0.1.0-dev-6
0.1.0-dev-5
0.1.0-dev-4
0.1.0-dev-3
0.1.0-dev-2
0.1.0-dev-17
0.1.0-dev-16
0.1.0-dev-15
0.1.0-dev-14
0.1.0-dev-13
0.1.0-dev-12
0.1.0-dev-11
0.1.0-dev-10
0.1.0-dev
Elixir client for ElectricSQL
Current section
Files
Jump to
Current section
Files
electric_client
mix.exs
mix.exs
defmodule Electric.Client.MixProject do
use Mix.Project
def project do
[
app: :electric_client,
version: version(),
elixir: "~> 1.17",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
name: "Electric Client",
description: description(),
docs: docs(),
package: package(),
source_url: "https://github.com/electric-sql/electric/tree/main/packages/elixir-client",
homepage_url: "https://electric-sql.com"
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
def application do
[
extra_applications: [:logger],
mod: {Electric.Client.Application, []}
]
end
defp deps do
[
{:ecto_sql, "~> 3.12", optional: true},
{:gen_stage, "~> 1.2", optional: true},
{:jason, "~> 1.4"},
{:nimble_options, "~> 1.1"},
{:req, "~> 0.5"}
] ++ deps_for(Mix.env())
end
defp deps_for(:test) do
[
{:bypass, "~> 2.1", only: [:test]},
{:postgrex, "~> 0.19", only: [:test]},
{:postgresql_uri, "~> 0.1", only: [:test]},
{:uuid, "~> 1.1", only: [:test]}
]
end
defp deps_for(:dev) do
[
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
]
end
defp deps_for(_), do: []
defp docs do
[
main: "Electric.Client"
]
end
defp package do
[
links: %{
"Electric SQL" => "https://electric-sql.com"
},
licenses: ["Apache-2.0"],
files: ~w(lib .formatter.exs mix.exs README.md LICENSE package.json)
]
end
defp description do
"Elixir client for ElectricSQL"
end
defp version do
with :error <- version_from_env(),
:error <- version_from_package_json() do
"0.0.0"
end
end
defp version_from_env do
with {:ok, version} <- System.fetch_env("ELECTRIC_CLIENT_VERSION"),
trimmed = String.trim(version),
{:ok, _} <- Version.parse(trimmed) do
trimmed
end
end
defp version_from_package_json do
case File.read("./package.json") do
{:ok, binary} -> binary |> :json.decode() |> Map.fetch!("version")
{:error, _} -> :error
end
end
end