Current section
Files
Jump to
Current section
Files
priv/templates/graphql_types.eex
defmodule <%= inspect @types_module %> do
@moduledoc """
Generated by Caravela from <%= inspect @domain_module %>.
Absinthe object types for every entity in the domain. Relations are
resolved via Dataloader.
Regenerate with `mix caravela.gen.graphql <%= inspect @domain_module %>`.
Custom code placed below the `# --- CUSTOM ---` marker is preserved.
"""
use Absinthe.Schema.Notation
import Absinthe.Resolution.Helpers, only: [dataloader: 1]
<%= for e <- @entities do %>
@desc "<%= e.description %>"
object <%= inspect e.gql_name %> do
field :id, non_null(:id)
<%= for f <- e.fields do %> field <%= inspect f.gql_name %>, <%= f.gql_type %>
<% end %><%= for a <- e.assocs do %> field <%= inspect a.gql_name %>, <%= a.gql_type %>, resolve: dataloader(<%= inspect @context_module %>)
<% end %> end
# --- CUSTOM :type_<%= e.gql_name %> ---
# --- END :type_<%= e.gql_name %> ---
<% end %>
<%= @custom_marker %>