A compiler phase which translates Select
nodes to be directly interpretable.
This phase,
1. types bindings according to the schema: i) untyped enums are validated and typed according to their declared type. ii) String and Int bindings are translated to ID bindings where appropriate. iii) default values are supplied for missing arguments. iv) arguments are permuted into the order declared in the schema.
2. eliminates Select arguments by delegating to a model-specific PartialFunction
which is responsible for translating Select
nodes into a form which is directly interpretable, for example, replacing them with a Filter
or Unique
node with a Predicate
which is parameterized by the arguments, ie.,
UntypedSelect("character", None, List(IDBinding("id", "1000")), Nil, child)
might be translated to,
Select("character, None, Filter(FieldEquals("id", "1000"), child))
3. GraphQL introspection query field arguments are elaborated.
Attributes
- Companion
- object
- Source
- compiler.scala
- Graph
-
- Supertypes