abstract class Mapping[F[_]] extends QueryExecutor[F, Json]
- Alphabetic
- By Inheritance
- Mapping
- QueryExecutor
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Mapping()
Type Members
- case class CursorField[T](fieldName: String, f: (Cursor) => Result[T], encoder: Encoder[T], required: List[String], hidden: Boolean)(implicit pos: SourcePos) extends FieldMapping with Product with Serializable
- case class Delegate(fieldName: String, mapping: Mapping[F], join: (Query, Cursor) => Result[Query] = ComponentElaborator.TrivialJoin)(implicit pos: SourcePos) extends FieldMapping with Product with Serializable
- case class EffectField(fieldName: String, handler: EffectHandler[F])(implicit pos: SourcePos) extends EffectMapping with Product with Serializable
- trait EffectMapping extends FieldMapping
Abstract type of field mappings with effects.
- trait FieldMapping extends Product with Serializable
- case class LeafCursor(context: Context, focus: Any, parent: Option[Cursor], env: Env) extends Cursor with Product with Serializable
Cursor positioned at a GraphQL result leaf
- trait LeafMapping[T] extends TypeMapping
- abstract class ObjectMapping extends TypeMapping
- case class PrefixedMapping(tpe: Type, mappings: List[(List[String], ObjectMapping)])(implicit pos: SourcePos) extends TypeMapping with Product with Serializable
- case class PrimitiveField(fieldName: String, hidden: Boolean = false)(implicit pos: SourcePos) extends FieldMapping with Product with Serializable
- case class PrimitiveMapping(tpe: Type)(implicit pos: SourcePos) extends TypeMapping with Product with Serializable
- case class RootCursor(context: Context, parent: Option[Cursor], env: Env) extends AbstractCursor with Product with Serializable
Root
Cursor
focussed on the top level operation of a queryRoot
Cursor
focussed on the top level operation of a queryConstruction of mapping-specific cursors is handled by delegation to
mkCursorForField which is typically overridden in
Mappingsubtypes.
- case class RootEffect extends EffectMapping with Product with Serializable
Root effects can perform an intial effect prior to computing the resulting
Cursor
and effectiveQuery
.Root effects can perform an intial effect prior to computing the resulting
Cursor
and effectiveQuery
.These effects are used to perform initial effectful setup for a query or to perform the effect associated with a GraphQL mutation. Convenience methods are provided to cover the cases where only one of the query or the cursor are computed.
If only the query is computed the default root cursor for the mapping will be used. If only the cursor is computed the client query (after elaboration) is used unmodified ... in this case results of the performed effect can only be passed to the result construction stage via the environment associated with the returned cursor.
- case class RootStream extends EffectMapping with Product with Serializable
Root streams can perform an intial effect prior to emitting the resulting cursors and effective queries.
Root streams can perform an intial effect prior to emitting the resulting cursors and effective queries.
Stream effects are used for GraphQL subscriptions. Convenience methods are provided to cover the cases where only one of the query or the cursor are computed
If only the query is computed the default root cursor for the mapping will be used. If only the cursor is computed the client query (after elaboration) is used unmodified ... in this case results of the performed effect can only be passed to the result construction stage via the environment associated with the returned cursor.
- trait TypeMapping extends Product with Serializable
Abstract Value Members
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def combineAndRun(queries: List[(Query, Cursor)]): F[Result[List[ProtoJson]]]
Combine and execute multiple queries.
Combine and execute multiple queries.
Each query is interpreted in the context of the Cursor it is paired with. The result list is aligned with the argument query list. For each query at most one stage will be run and the corresponding result may contain deferred components.
Errors are aggregated across all the argument queries and are accumulated on the
Left
of the result.This method is typically called at the end of a stage to evaluate deferred subqueries in the result of that stage. These will be grouped by and passed jointly to the responsible mapping in the next stage using this method. Maappongs which are able to benefit from combining queries may do so by overriding this method to implement their specific combinging logic.
- def compileAndRun(text: String, name: Option[String] = None, untypedVars: Option[Json] = None, introspectionLevel: IntrospectionLevel = Full, env: Env = Env.empty)(implicit sc: Compiler[F, F]): F[Json]
- Definition Classes
- QueryExecutor
- def compileAndRunAll(text: String, name: Option[String] = None, untypedVars: Option[Json] = None, introspectionLevel: IntrospectionLevel = Full, env: Env = Env.empty): Stream[F, Json]
- Definition Classes
- Mapping → QueryExecutor
- def compileAndRunOne(text: String, name: Option[String] = None, untypedVars: Option[Json] = None, introspectionLevel: IntrospectionLevel = Full, env: Env = Env.empty)(implicit sc: Compiler[F, F]): F[Json]
- Definition Classes
- Mapping → QueryExecutor
- lazy val compiler: QueryCompiler
- def compilerPhases: List[Phase]
- lazy val componentElaborator: ComponentElaborator[[_]F[_]]
- def defaultRootCursor(query: Query, tpe: Type, parentCursor: Option[Cursor]): F[Result[(Query, Cursor)]]
Yields a
Cursor
focused on the top level operation type of the query - lazy val effectElaborator: EffectElaborator[[_]F[_]]
- def encoderForLeaf(tpe: Type): Option[Encoder[Any]]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def fieldMapping(context: Context, fieldName: String): Option[FieldMapping]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val interpreter: QueryInterpreter[F]
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isLeaf(tpe: Type): Boolean
True if the supplied type is a leaf with respect to the GraphQL schema or mapping, false otherwise.
- def leafMapping[T](tpe: Type): Option[LeafMapping[T]]
- def mkCursorForField(parent: Cursor, fieldName: String, resultName: Option[String]): Result[Cursor]
Yields a
Cursor
suitable for traversing the query result corresponding to thefieldName
child ofparent
.Yields a
Cursor
suitable for traversing the query result corresponding to thefieldName
child ofparent
.This method is typically overridden in and delegated to by
Mapping
subtypes. - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def objectMapping(context: Context): Option[ObjectMapping]
- def rootEffect(context: Context, fieldName: String): Option[RootEffect]
Yields the
RootEffect
, if any, associated withfieldName
. - def rootStream(context: Context, fieldName: String): Option[RootStream]
Yields the
RootStream
, if any, associated withfieldName
. - def run(op: Operation, env: Env = Env.empty): Stream[F, Json]
- def run(query: Query, rootTpe: Type, env: Env): Stream[F, Json]
- val selectElaborator: SelectElaborator
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def typeMapping(tpe: NamedType): Option[TypeMapping]
- val validator: MappingValidator
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object CursorField extends Serializable
- object EffectField extends Serializable
- object LeafMapping extends Serializable
- object ObjectMapping extends Serializable
- object RootEffect extends Serializable
- object RootStream extends Serializable