A GraphQL schema loaded from an introspection result.
This is what the server says it offers — the root operation types, every named type and every directive — and what queries are validated and generated against.
Summary
Functions
Whether type_name names an abstract type — a union or an interface.
Types
@type t() :: %TypedGql.Schema{ directives: [TypedGql.Schema.Directive.t()], mutation_type: String.t() | nil, query_type: String.t() | nil, subscription_type: String.t() | nil, types: %{required(String.t()) => TypedGql.Schema.Type.t()} }
Functions
Whether type_name names an abstract type — a union or an interface.
A name the schema does not define is not abstract; the callers that care about that distinction check existence separately.
@spec get_directive(t(), String.t()) :: {:ok, TypedGql.Schema.Directive.t()} | :error
@spec get_field(t(), String.t(), String.t()) :: {:ok, TypedGql.Schema.Field.t()} | :error
@spec get_type(t(), String.t()) :: {:ok, TypedGql.Schema.Type.t()} | :error