Module: GraphQL::Types::Relay
- Defined in:
- lib/graphql/types/relay.rb,
lib/graphql/types/relay/node.rb,
lib/graphql/types/relay/base_edge.rb,
lib/graphql/types/relay/page_info.rb,
lib/graphql/types/relay/node_field.rb,
lib/graphql/types/relay/nodes_field.rb,
lib/graphql/types/relay/default_relay.rb,
lib/graphql/types/relay/edge_behaviors.rb,
lib/graphql/types/relay/has_node_field.rb,
lib/graphql/types/relay/node_behaviors.rb,
lib/graphql/types/relay/base_connection.rb,
lib/graphql/types/relay/has_nodes_field.rb,
lib/graphql/types/relay/page_info_behaviors.rb,
lib/graphql/types/relay/connection_behaviors.rb
Overview
This module contains some types and fields that could support Relay conventions in GraphQL.
You can use these classes out of the box if you want, but if you want to use your own GraphQL extensions along with the features in this code, you could also open up the source files and copy the relevant methods and configuration into your own classes.
For example, the provided object types extend Types::Relay::BaseObject, but you might want to:
- Migrate the extensions from Types::Relay::BaseObject into your app's base object
- Copy BaseConnection, BaseEdge, etc into your app, and change them to extend your base object.
Similarly, BaseField
's extensions could be migrated to your app
and Node
could be implemented to mix in your base interface module.
Defined Under Namespace
Modules: ConnectionBehaviors, DefaultRelay, EdgeBehaviors, HasNodeField, HasNodesField, Node, NodeBehaviors, PageInfoBehaviors Classes: BaseConnection, BaseEdge, PageInfo
Constant Summary collapse
- NodeField =
This can be used for implementing
Query.node(id: ...)
, or use it for inspiration for your own field definition. GraphQL::Schema::Field.new(owner: nil, **HasNodeField., &HasNodeField.field_block)
- NodesField =
This can be used for implementing
Query.nodes(ids: ...)
, or use it for inspiration for your own field definition. GraphQL::Schema::Field.new(owner: nil, **HasNodesField., &HasNodesField.field_block)