mirror of
https://github.com/ash-project/ash_graphql.git
synced 2024-09-20 05:13:33 +12:00
f0836f18b6
metadata on read actions is merged with the rest of the fields on the query, so must have a name unique from the attributes/calculations/aggregates. The system will warn you if there is metadata on the underlying action that is being ignored, and will tell you how to fix it.
169 lines
3.9 KiB
Elixir
169 lines
3.9 KiB
Elixir
defmodule AshGraphql.MixProject do
|
|
use Mix.Project
|
|
|
|
@description """
|
|
An absinthe-backed graphql extension for Ash
|
|
"""
|
|
|
|
@version "0.22.4"
|
|
|
|
def project do
|
|
[
|
|
app: :ash_graphql,
|
|
version: @version,
|
|
elixir: "~> 1.11",
|
|
start_permanent: Mix.env() == :prod,
|
|
package: package(),
|
|
aliases: aliases(),
|
|
deps: deps(),
|
|
elixirc_paths: elixirc_paths(Mix.env()),
|
|
dialyzer: [plt_add_apps: [:ash]],
|
|
test_coverage: [tool: ExCoveralls],
|
|
preferred_cli_env: [
|
|
coveralls: :test,
|
|
"coveralls.github": :test
|
|
],
|
|
docs: docs(),
|
|
description: @description,
|
|
source_url: "https://github.com/ash-project/ash_graphql",
|
|
homepage_url: "https://github.com/ash-project/ash_graphql"
|
|
]
|
|
end
|
|
|
|
defp elixirc_paths(:test) do
|
|
elixirc_paths(:dev) ++ ["test/support"]
|
|
end
|
|
|
|
defp elixirc_paths(_) do
|
|
["lib"]
|
|
end
|
|
|
|
defp extras() do
|
|
"documentation/**/*.md"
|
|
|> Path.wildcard()
|
|
|> Enum.map(fn path ->
|
|
title =
|
|
path
|
|
|> Path.basename(".md")
|
|
|> String.split(~r/[-_]/)
|
|
|> Enum.map(&String.capitalize/1)
|
|
|> Enum.join(" ")
|
|
|> case do
|
|
"F A Q" ->
|
|
"FAQ"
|
|
|
|
other ->
|
|
other
|
|
end
|
|
|
|
{String.to_atom(path),
|
|
[
|
|
title: title
|
|
]}
|
|
end)
|
|
end
|
|
|
|
defp groups_for_extras() do
|
|
"documentation/*"
|
|
|> Path.wildcard()
|
|
|> Enum.map(fn folder ->
|
|
name =
|
|
folder
|
|
|> Path.basename()
|
|
|> String.split(~r/[-_]/)
|
|
|> Enum.map(&String.capitalize/1)
|
|
|> Enum.join(" ")
|
|
|
|
{name, folder |> Path.join("**") |> Path.wildcard()}
|
|
end)
|
|
end
|
|
|
|
defp docs do
|
|
[
|
|
main: "AshGraphql",
|
|
source_ref: "v#{@version}",
|
|
logo: "logos/small-logo.png",
|
|
extra_section: "GUIDES",
|
|
spark: [
|
|
extensions: [
|
|
%{
|
|
module: AshGraphql.Resource,
|
|
name: "AshGraphql Resource",
|
|
target: "Ash.Resource",
|
|
type: "GraphQL Resource"
|
|
},
|
|
%{
|
|
module: AshGraphql.Api,
|
|
name: "AshGraphql Api",
|
|
target: "Ash.Api",
|
|
type: "GraphQL Api"
|
|
}
|
|
]
|
|
],
|
|
extras: extras(),
|
|
groups_for_extras: groups_for_extras(),
|
|
groups_for_modules: [
|
|
Introspection: [
|
|
AshGraphql.Resource.Info,
|
|
AshGraphql.Api.Info
|
|
],
|
|
Internals: ~r/.*/
|
|
]
|
|
]
|
|
end
|
|
|
|
defp package do
|
|
[
|
|
name: :ash_graphql,
|
|
licenses: ["MIT"],
|
|
files: ~w(lib .formatter.exs mix.exs README* LICENSE*
|
|
CHANGELOG* documentation),
|
|
links: %{
|
|
GitHub: "https://github.com/ash-project/ash_graphql"
|
|
}
|
|
]
|
|
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
|
|
[
|
|
{:ash, ash_version("~> 2.5.11")},
|
|
{:absinthe_plug, "~> 1.4"},
|
|
{:absinthe, "~> 1.7"},
|
|
{:dataloader, "~> 1.0"},
|
|
{:jason, "~> 1.2"},
|
|
{:ex_doc, "~> 0.22", only: :dev, runtime: false},
|
|
{:ex_check, "~> 0.12.0", only: :dev},
|
|
{:credo, ">= 0.0.0", only: :dev, runtime: false},
|
|
{:dialyxir, ">= 0.0.0", only: :dev, runtime: false},
|
|
{:sobelow, ">= 0.0.0", only: :dev, runtime: false},
|
|
{:git_ops, "~> 2.5.1", only: :dev},
|
|
{:excoveralls, "~> 0.13.0", only: [:dev, :test]}
|
|
]
|
|
end
|
|
|
|
defp ash_version(default_version) do
|
|
case System.get_env("ASH_VERSION") do
|
|
nil -> default_version
|
|
"local" -> [path: "../ash"]
|
|
"main" -> [git: "https://github.com/ash-project/ash.git"]
|
|
version -> "~> #{version}"
|
|
end
|
|
end
|
|
|
|
defp aliases do
|
|
[
|
|
sobelow: "sobelow --skip",
|
|
credo: "credo --strict",
|
|
docs: ["docs", "ash.replace_doc_links"],
|
|
"spark.formatter": "spark.formatter --extensions AshGraphql.Resource,AshGraphql.Api"
|
|
]
|
|
end
|
|
end
|