View Source Absinthe.Type.NonNull (absinthe v1.7.8)

A type that wraps an underlying type, acting identically to that type but adding a non-null constraint.

By default, all types in GraphQL are nullable. To declare a type that disallows null, wrap it in a Absinthe.Type.NonNull struct.

Adding non_null/1 to a type is a breaking change, removing it is not. Client documents that specify non null on a variable eg query ($id: ID!) are allowed to be passed to arguments which allow null. If the argument however is non_null, then the variable type MUST be non null as well.

Examples

Given a type, :item, to declare it as non-null, you could do the following:

type: %Absinthe.Type.NonNull{of_type: :item}

But normally this would be done using Absinthe.Schema.Notation.non_null/1.

type: non_null(:item)

Summary

Types

t()

A defined non-null type.

Functions

Callback implementation for c:Absinthe.Introspection.TypeKind.kind/0.

Types

@type t() :: %Absinthe.Type.NonNull{of_type: Absinthe.Type.nullable_t()}

A defined non-null type.

Options

  • :of_type -- the underlying type to wrap
@type t(x) :: %Absinthe.Type.NonNull{of_type: x}

Functions

Callback implementation for c:Absinthe.Introspection.TypeKind.kind/0.