Skip to main content
Version: v4.x

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.