View Source Absinthe.Phase behaviour (absinthe v1.7.7)

Behaviour for Absinthe Phases.

A phase takes an Absinthe.Blueprint document and returns another blueprint document. All validation, resolution, and result building happens via phases. See Absinthe.Pipeline for information on how to run phases. See the code under this namespace for information on individual phases.

Summary

Types

@type result_t() ::
  {:ok, any()}
  | {:jump, any(), t()}
  | {:insert, any(), t() | [t()]}
  | {:replace, any(), t() | [t()]}
  | {:error, any()}
  | {:record_phases, any(), (any(), any() -> any())}
@type t() :: module()

Callbacks

@callback run(any(), any()) :: result_t()

Functions

@spec put_error(Absinthe.Blueprint.node_t(), Absinthe.Phase.Error.t()) ::
  Absinthe.Blueprint.node_t()