defmodule Absinthe.Adapter.Underscore do @moduledoc """ Underscores external input and leaves external input alone. Unlike the `Absinthe.Adapter.Passthrough` this does not break introspection (because introspection relies on underscoring incoming introspection queries which we still do). """ use Absinthe.Adapter def to_internal_name(nil, _role) do nil end def to_internal_name("__" <> camelized_name, role) do "__" <> to_internal_name(camelized_name, role) end def to_internal_name(camelized_name, _role) do camelized_name |> Macro.underscore() end def to_external_name(name, _role) do name end end