View Source Absinthe.Phase.Document.Validation.ExecutableDefinitions (absinthe v1.10.2)

Implements GraphQL spec §5.1.1 "Executable Definitions": a document submitted for execution must contain only OperationDefinition and FragmentDefinition. Any TypeSystemDefinition or TypeSystemExtension is invalid for execution and is rejected here.

Runs between Phase.Parse and Phase.Blueprint in the for_document pipeline.

Summary

Functions

flag_invalid(node)

@spec flag_invalid(node :: Absinthe.Blueprint.node_t()) :: Absinthe.Blueprint.node_t()

flag_invalid(node, flag)

@spec flag_invalid(node :: Absinthe.Blueprint.node_t(), flag :: atom()) ::
  Absinthe.Blueprint.node_t()

flag_invalid(node, flag, reason)

@spec flag_invalid(
  node :: Absinthe.Blueprint.node_t(),
  flag :: atom(),
  reason :: String.t()
) ::
  Absinthe.Blueprint.node_t()

inherit_invalid(node, children, add_flag)

put_flag(node, flag)

run(blueprint, options \\ [])

Callback implementation for Absinthe.Phase.run/2.