Packages

JEXL (JavaScript Expression Language) evaluator for Elixir, built with NimbleParsec.

Current section

Files

Jump to
ex_jexl mix.exs
Raw

mix.exs

defmodule ExJexl.MixProject do
use Mix.Project
@version "0.2.0"
@source_url "https://github.com/stephanh90/ex_jexl"
def project do
[
app: :ex_jexl,
version: @version,
elixir: "~> 1.18",
start_permanent: Mix.env() == :prod,
deps: deps(),
description: description(),
package: package(),
docs: docs(),
name: "ExJexl",
source_url: @source_url
]
end
# 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
[
{:usage_rules, "~> 1.0", only: [:dev]},
{:nimble_parsec, "~> 1.4"},
{:benchee, "~> 1.0", only: :dev},
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
]
end
defp description do
"""
A powerful and fast JEXL (JavaScript Expression Language) evaluator for Elixir.
Built with NimbleParsec for excellent performance and comprehensive feature support
including arithmetic, comparisons, property access, transforms, and business logic evaluation.
"""
end
defp package do
[
name: "ex_jexl",
files: ~w(lib .formatter.exs mix.exs README* LICENSE* CHANGELOG*),
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
},
maintainers: ["Stephan H"],
exclude_patterns: ["benchmark/*"]
]
end
defp docs do
[
main: "ExJexl",
source_ref: "v#{@version}",
source_url: @source_url,
extras: [
"README.md",
"CHANGELOG.md"
],
groups_for_modules: [
Core: [ExJexl],
Parser: [ExJexl.Parser],
Evaluator: [ExJexl.Evaluator],
Transforms: [ExJexl.Transforms]
]
]
end
end