This is a plugin for graphql-compose, which generates GraphQLTypes for bullmq.
npm install graphql graphql-compose bullmq graphql-compose-bullmq --save
Modules graphql
, graphql-compose
, bullmq
are in peerDependencies
, so should be installed explicitly in your app. They have global objects and should not have ability to be installed as submodule.
import { composeBull } from 'graphql-compose-bullmq';
import { schemaComposer } from 'graphql-compose';
const { queryFields, mutationFields } = composeBull({
schemaComposer,
typePrefix: 'Prefix',
jobDataTC: `type MyJobData { fieldA: String! fieldB: String}`,
queue: {
name: 'fetch_metrics',
prefix: 'bull.demo',
},
redis: 'redis://127.0.0.1:6379',
});
schemaComposer.Query.addFields({
...queryFields,
// Will provide the following fields:
// queueKeys
// queues
// queue
// job
});
schemaComposer.Mutation.addFields({
...mutationFields,
// Will provide the following fields:
// queueClean
// queueDrain
// queuePause
// queueResume
// queueRemoveRepeatable
// jobAdd
// jobAddBulk
// jobAddRepeatableCron
// jobAddRepeatableEvery
// jobDiscard
// jobPromote
// jobRemove
// jobRetry
// jobUpdate
// jobLogAdd
});
const schema = schemaComposer.buildSchema();
composeBull
will generate particles for your further schema. It contains more than 40 types wich helps to you work with Bull Queues. You may see generated files in schema.graphql file. It can be visialized with https://apis.guru/graphql-voyager/ in the following manner: