Skip to content

graphql-compose/graphql-compose-bullmq

Repository files navigation

graphql-compose-bullmq

npm trends travis build Fully automated version management and package publishing

This is a plugin for graphql-compose, which generates GraphQLTypes for bullmq.

Installation

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.

Example

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();

Schema

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:

Queries

Screen Shot 2020-04-14 at 21 22 38

Mutations

Screen Shot 2020-04-14 at 21 24 05

License

MIT