Packages
absinthe
0.4.0
1.11.0
1.10.2
1.10.1
1.10.0
1.9.1
1.9.0
1.8.0
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.8
1.6.7
retired
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.6.0-rc.1
1.6.0-rc.0
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.5.0-rc.5
1.5.0-rc.4
1.5.0-rc.3
1.5.0-rc.2
1.5.0-rc.1
1.5.0-rc.0
1.5.0-beta.2
1.5.0-beta.1
1.5.0-beta.0
1.5.0-alpha.4
1.5.0-alpha.3
1.5.0-alpha.2
1.5.0-alpha.1
1.5.0-alpha.0
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
retired
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.4.0-rc.3
1.4.0-rc.2
1.4.0-rc.1
1.4.0-rc.0
1.4.0-beta.5
1.4.0-beta.4
1.4.0-beta.3
1.4.0-beta.2
1.4.0-beta.1
1.3.2
1.3.1
1.3.0
1.3.0-rc.0
1.3.0-beta.2
1.3.0-beta.1
1.3.0-beta.0
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc.0
1.2.0-beta.0
1.2.0-alpha0
1.2.0-alpha.2
1.2.0-alpha.1
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
0.5.2
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.2.3
0.2.2
0.2.1
0.1.0
GraphQL for Elixir
Current section
Files
Jump to
Current section
Files
lib/absinthe/type/argument.ex
defmodule Absinthe.Type.Argument do
@moduledoc """
Used to define an argument.
Usually these are defined using the `Absinthe.Type.Definitions.args/1`
convenience function.
"""
alias __MODULE__
alias Absinthe.Type
use Type.Fetch
@typedoc """
Argument configuration
* `:name` - The name of the argument, usually assigned automatically by
the `Absinthe.Type.Definitions.args/1` convenience function.
* `:type` - The type values the argument accepts/will coerce to.
* `:deprecation` - Deprecation information for an argument, usually
set-up using the `Absinthe.Type.Definitions.deprecate/1` convenience
function.
* `:description` - Description of an argument, useful for introspection.
"""
@type t :: %{name: binary,
type: Type.identifier_t,
default_value: any,
deprecation: Type.Deprecation.t | nil,
description: binary | nil}
defstruct name: nil, description: nil, type: nil, deprecation: nil, default_value: nil
defimpl Absinthe.Validation.RequiredInput do
# Whether the argument is required.
#
# * If the argument is deprecated, it is never required
# * If the argumnet is not deprecated, it is required
# if its type is non-null
@doc false
@spec required?(Argument.t) :: boolean
def required?(%Argument{type: type, deprecation: nil}) do
type
|> Absinthe.Validation.RequiredInput.required?
end
def required?(%Argument{}) do
false
end
end
end