Class: SelectionSetBuilder

SelectionSetBuilder(typeBundle, typeSchema, selections)

Class used to help build a SelectionSet.

Constructor

new SelectionSetBuilder(typeBundle, typeSchema, selections)

This constructor should not be invoked directly. SelectionSetBuilders are created when building queries/mutations.

Parameters:
Name Type Description
typeBundle Object

A set of ES6 modules generated by graphql-js-schema.

typeSchema Object

The schema object for the type of the current selection.

selections Array.<Field>

The fields on the current selection.

Source:

Methods

add(selectionOrFieldName, optionsopt, callbackOrSelectionSetopt)

Adds a field to be queried on the current selection.

Parameters:
Name Type Attributes Description
selectionOrFieldName SelectionSet | String

The selection or name of the field to add.

options Object <optional>

Options on the query including:

Properties
Name Type Attributes Description
args Object <optional>

Arguments on the query (e.g. {id: '123456'}).

alias String <optional>

Alias for the field being added.

callbackOrSelectionSet function | SelectionSet <optional>

Either a callback which will be used to create a new SelectionSet, or an existing SelectionSet.

Source:
Example
client.query((root) => {
  root.add('cat', {args: {id: '123456'}, alias: 'meow'}, (cat) => {
    cat.add('name');
  });
});

addConnection(name, optionsopt, callbackOrSelectionSetopt)

Adds a connection to be queried on the current selection. This adds all the fields necessary for pagination.

Parameters:
Name Type Attributes Description
name String

The name of the connection to add to the query.

options Object <optional>

Options on the query including:

Properties
Name Type Attributes Description
args Object <optional>

Arguments on the query (e.g. {first: 10}).

alias String <optional>

Alias for the field being added.

callbackOrSelectionSet function | SelectionSet <optional>

Either a callback which will be used to create a new SelectionSet, or an existing SelectionSet.

Source:
Example
client.query((root) => {
  root.add('cat', (cat) => {
    cat.addConnection('friends', {args: {first: 10}, alias: 'coolCats'}, (friends) => {
      friends.add('name');
    });
  });
});

addFragment(fragmentSpread)

Adds a fragment spread on the current selection.

Parameters:
Name Type Description
fragmentSpread FragmentSpread

The fragment spread to add.

Source:
Example
client.query((root) => {
  root.addFragment(catFragmentSpread);
});

addInlineFragmentOn(typeName, callbackOrSelectionSetopt)

Adds an inline fragment on the current selection.

Parameters:
Name Type Attributes Description
typeName String

The name of the type of the inline fragment.

callbackOrSelectionSet function | SelectionSet <optional>

Either a callback which will be used to create a new SelectionSet, or an existing SelectionSet.

Source:
Example
client.query((root) => {
  root.add('animal', (animal) => {
    animal.addInlineFragmentOn('cat', (cat) => {
      cat.add('name');
    });
  });
});