Packages
Interactive code visualizations for Elixir projects — 3D software city and Ecto ERD, rendered as self-contained HTML.
Current section
Files
Jump to
Current section
Files
ex_code_view
mix.exs
mix.exs
defmodule ExCodeView.MixProject do
use Mix.Project
@version "0.2.0"
@source_url "https://github.com/ShawnMcCool/ex_code_view"
def project do
[
app: :ex_code_view,
version: @version,
elixir: "~> 1.15",
deps: deps(),
package: package(),
description:
"Interactive code visualizations for Elixir projects — 3D software city and Ecto ERD, rendered as self-contained HTML.",
source_url: @source_url,
homepage_url: @source_url,
docs: docs(),
test_paths: ["test"],
test_pattern: "*_test.exs",
aliases: aliases()
]
end
def cli do
[preferred_envs: ["test.all": :test]]
end
def application do
[extra_applications: [:logger]]
end
defp deps do
[
{:jason, "~> 1.0"},
{:ex_doc, "~> 0.34", only: :dev, runtime: false}
]
end
defp aliases do
[
"test.all": [
"test",
fn _ ->
js_tests = [
"priv/views/city/js/lib.test.js",
"priv/views/erd/js/lib.test.js",
"priv/shell/js/tooltip.test.js",
"priv/shell/js/controls.test.js",
"priv/shell/js/shell.test.js"
]
for test_file <- js_tests do
case System.cmd("node", ["--test", test_file],
into: IO.stream(:stdio, :line),
stderr_to_stdout: true
) do
{_, 0} -> :ok
{_, _} -> Mix.raise("JS tests failed: #{test_file}")
end
end
end
],
lint: ["format --check-formatted"]
]
end
defp package do
[
files: ~w(lib priv mix.exs README.md LICENSE CHANGELOG.md usage-rules.md usage-rules),
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => @source_url <> "/blob/main/CHANGELOG.md"
}
]
end
defp docs do
[
main: "readme",
source_url: @source_url,
source_ref: "v#{@version}",
extras: [
"README.md",
"CHANGELOG.md",
"DESIGN.md",
"LICENSE"
]
]
end
end