A node in the generated-schema tree, built by the resolve step before lowering to EctoTypedSchema AST.
Two node shapes share this struct:
- object node —
kind: :object, carriesfieldsandchildren(child nodes for embedded objects). Lowers to onetyped_embedded_schemamodule. - union node —
kind: :union, carriesunion_module,typename_to_module, andchildren(one object node per concrete type). Lowers to the concrete-type modules; the parameterizedTypedGql.Types.Uniontype module is created eagerly during resolve because Ecto validates parameterized type modules exist at schema compile time.
The full tree for an operation is built before any lowering happens, so lifecycle plugins see the complete structure.
Summary
Functions
Walks the whole tree applying fun to every TypedGql.Generation.Field.
Types
Functions
@spec map_fields(t(), (TypedGql.Generation.Field.t() -> TypedGql.Generation.Field.t())) :: t()
Walks the whole tree applying fun to every TypedGql.Generation.Field.
Lets directive plugins transform fields without recursion boilerplate. Recurses into both embedded-object children and union variants.