Default Plugins
The following plugins come bundled with graphile-build
as defaultPlugins
and
it's recommended to use them in your schemas.
StandardTypesPlugin
Declares Cursor
, UUID
, JSON
and PageInfo
types you can get from
build.getTypeByName('Cursor')
etc.
NodePlugin
Implements some foundations for the
Relay Global Object Identification Specification -
adds id
(or whatever you set as nodeIdFieldName
) to Query
and allows you
to look up registered nodes by their id
.
QueryPlugin
Defines the Query
object and hooks GraphQLSchema
to add it in. To hook this,
function MyPlugin(builder) {
builder.hook(
"GraphQLObjectType",
(spec, { extend }, { scope: { isRootQuery } }) => {
if (!isRootQuery) {
return spec;
}
return extend(spec, {
//... Add new query fields here
});
}
);
}
MutationPlugin
Defines the Mutation
object and hooks GraphQLSchema
to add it in. Will only
be added to the Schema if a hook adds fields to it.
function MyPlugin(builder) {
builder.hook(
"GraphQLObjectType",
(spec, { extend }, { scope: { isRootMutation } }) => {
if (!isRootMutation) {
return spec;
}
return extend(spec, {
//... Add new mutation fields here
});
}
);
}
ClientMutationIdDescriptionPlugin
Adds a description to clientMutationId
field...
MutationPayloadQueryPlugin
Adds query
to mutation payloads so that you can query any data you like after
the mutation has resolved.