edu.gemini.grackle

Type members

Classlikes

object Ast
trait Cursor

Indicates a position within an abstract data model during the interpretation of a GraphQL query.

Indicates a position within an abstract data model during the interpretation of a GraphQL query.

Companion:
object
object Cursor
Companion:
class
case class Directive(name: String, description: Option[String], locations: List[DirectiveLocation], args: List[InputValue])

The Directive type represents a Directive that a server supports.

The Directive type represents a Directive that a server supports.

See also:
case class EnumType(name: String, description: Option[String], enumValues: List[EnumValue]) extends Type with NamedType

Enums are special scalars that can only have a defined set of values.

Enums are special scalars that can only have a defined set of values.

See also:
case class EnumValue(name: String, description: Option[String], isDeprecated: Boolean, deprecationReason: Option[String])

The EnumValue type represents one of possible values of an enum.

The EnumValue type represents one of possible values of an enum.

See also:
case class Field(name: String, description: Option[String], args: List[InputValue], tpe: Type, isDeprecated: Boolean, deprecationReason: Option[String])

The Field type represents each field in an Object or Interface type.

The Field type represents each field in an Object or Interface type.

See also:
case class InputObjectType(name: String, description: Option[String], inputFields: List[InputValue]) extends Type with NamedType

Input objects are composite types used as inputs into queries defined as a list of named input values.

Input objects are composite types used as inputs into queries defined as a list of named input values.

See also:
case class InputValue(name: String, description: Option[String], tpe: Type, defaultValue: Option[Value])
Value parameters:
defaultValue

a String encoding (using the GraphQL language) of the default value used by this input value in the condition a value is not provided at runtime.

case class InterfaceType(name: String, description: Option[String], fields: List[Field], interfaces: List[NamedType]) extends Type with TypeWithFields

Interfaces are an abstract type where there are common fields declared. Any type that implements an interface must define all the fields with names and types exactly matching.

Interfaces are an abstract type where there are common fields declared. Any type that implements an interface must define all the fields with names and types exactly matching.

See also:
object JoinType

A synthetic type representing the join between a component/stage and its parent object.

A synthetic type representing the join between a component/stage and its parent object.

case class ListType(ofType: Type) extends Type

Lists represent sequences of values in GraphQL. A List type is a type modifier: it wraps another type instance in the ofType field, which defines the type of each item in the list.

Lists represent sequences of values in GraphQL. A List type is a type modifier: it wraps another type instance in the ofType field, which defines the type of each item in the list.

See also:
object Literals
abstract class Mapping[F[_]](implicit val M: Monad[F]) extends QueryExecutor[F, Json]
Companion:
object
Companion:
class
sealed trait NamedType extends Type

A type with a schema-defined name.

A type with a schema-defined name.

This includes object types, inferface types and enums.

case class NullableType(ofType: Type) extends Type

A Non‐null type is a type modifier: it wraps another type instance in the ofType field. Non‐null types do not allow null as a response, and indicate required inputs for arguments and input object fields.

A Non‐null type is a type modifier: it wraps another type instance in the ofType field. Non‐null types do not allow null as a response, and indicate required inputs for arguments and input object fields.

See also:
case class ObjectType(name: String, description: Option[String], fields: List[Field], interfaces: List[NamedType]) extends Type with TypeWithFields

Object types represent concrete instantiations of sets of fields.

Object types represent concrete instantiations of sets of fields.

See also:
case class Operation(query: Query, rootTpe: NamedType)
sealed trait Path
Companion:
object
object Path
Companion:
class
trait Predicate extends Term[Boolean]
Companion:
object
object Predicate
Companion:
class
final case class Problem(message: String, locations: List[(Int, Int)], path: List[String])

A problem, to be reported back to the user.

A problem, to be reported back to the user.

Companion:
object
object Problem
Companion:
class
sealed trait Query

GraphQL query Algebra

GraphQL query Algebra

Companion:
object
object Query
Companion:
class
class QueryCompiler(schema: Schema, phases: List[Phase])

GraphQL query compiler.

GraphQL query compiler.

A QueryCompiler parses GraphQL queries to query algebra terms, then applies a collection of transformation phases in sequence, yielding a query algebra term which can be directly interpreted.

Companion:
object
Companion:
class
trait QueryExecutor[F[_], T]
class QueryInterpreter[F[_]](mapping: Mapping[F])
Companion:
object
Companion:
class

GraphQL query parser

GraphQL query parser

object Result
case class ScalarType(name: String, description: Option[String]) extends Type with NamedType

Represents scalar types such as Int, String, and Boolean. Scalars cannot have fields.

Represents scalar types such as Int, String, and Boolean. Scalars cannot have fields.

See also:
Companion:
object
object ScalarType
Companion:
class
trait Schema

Representation of a GraphQL schema

Representation of a GraphQL schema

A Schema is a collection of type and directive declarations.

Companion:
object
object Schema
Companion:
class

GraphQL schema parser

GraphQL schema parser

trait Term[T] extends Product with Serializable

A reified function over a Cursor.

A reified function over a Cursor.

Query interpreters will typically need to introspect predicates (eg. in the doobie module we need to be able to construct where clauses from predicates over fields/attributes), so these cannot be arbitrary functions Cursor => Boolean.

sealed trait Type extends Product

A GraphQL type definition.

A GraphQL type definition.

case class TypeRef(schema: Schema, name: String) extends NamedType

A by name reference to a type defined in schema.

A by name reference to a type defined in schema.

sealed trait TypeWithFields extends NamedType

A type with fields.

A type with fields.

This includes object types and inferface types.

case class UnionType(name: String, description: Option[String], members: List[NamedType]) extends Type with NamedType

Unions are an abstract type where no common fields are declared. The possible types of a union are explicitly listed out in elements. Types can be made parts of unions without modification of that type.

Unions are an abstract type where no common fields are declared. The possible types of a union are explicitly listed out in elements. Types can be made parts of unions without modification of that type.

See also:
sealed trait UntypedOperation
Companion:
object
Companion:
class
sealed trait Value
Companion:
object
object Value
Companion:
class
abstract class ValueMapping[F[_]] extends Mapping[F]
object syntax

Types

type Result[+T] = IorNec[Problem, T]

A result value.

A result value.

A result of type T, a non-empty collection of errors encoded as Json, or both.