AST-based GraphQL Schema Type Definitions.
Adds type resolution and useful helper methods for working with graphql schema definitions, such as is useful for code generation.
The primary entrypoint is usually GraphQLSchema.fromNode(), which accepts an
NOTE: This library is currently only for working with schema definitions,
and is not a package for implementing servers like
- Arguments to Fields which accept them. FieldDefinitions are conceptually functions which return values, and occasionally accept arguments which alter their behavior. [...]
- Directives provide a way to describe alternate runtime execution and type validation behavior in a GraphQL document.
- Directives are used to annotate various parts of a GraphQL document as an indicator that they should be evaluated differently by a validator, executor, or client tool such as a code generator.
- Enum types describe the set of possible values. [...]
- The literal value of an EnumTypeDefinition
- A field describes one discrete piece of information available to request within a selection set. [...]
- / A GraphQL Schema definition without field resolution capacities. [...]
- A Type Reference to a concrete TypeDefinition. [...]
- An Input Object Type Definition [...]
- Field and directive arguments accept input values of various literal primitives. [...]
- Interfaces represent a list of named fields and their arguments. [...]
- A List Type wrapping another GraphQLType. [...]
- An unqualified Named Type Reference. [...]
V extends Value>
- Definition for a GraphQL Object, which represents a list of named fields, each of which yield a value of a specific type. [...]
- A Root Operation. [...]
- Scalar types represent primitive leaf values in a GraphQL type system. [...]
- The fundamental unit of any GraphQL Schema (spec). [...]
- InterfaceTypeDefinition and ObjectTypeDefinition both have field sets
Enables "type resolution" for implementing classes,
allowing for type-dereferencing, such as is done by
- Base class of all type system definitions
- Unions represent an object that could be one of a list of GraphQL Object types (ObjectTypeDefinition), but provides for no guaranteed fields between those types. [...]
- A literal value type