2.1.1 • Published 4 years ago

roger-rabbit v2.1.1

Weekly downloads
17
License
ISC
Repository
github
Last release
4 years ago

Travis Codecov npm npm

Roger Rabbit

Roger Rabbit is a module that makes the process of consuming and publishing messages in message brokers easier. It is a wrapper for amqplib.

Install

npm install roger-rabbit --save

Example

// broker.js
const Broker = require('roger-rabbit');

module.exports = Broker({
  host: 'amqp://guest:guest@localhost:5672',
  exchange: {
    type: 'direct',
    name: 'exchange.name',
  },
});
// consumer.js
const broker = require('./broker');

const queue = {
  name: 'queue.name',
  options: {
    durable: true,
  },
};

const routingKey = 'routing.key.name';

broker.consume({ queue, routingKey }, (message) => {
  // do something
  // throw an error to reject message
});
// publisher.js
const broker = require('./broker');

broker
  .publish('routing.key.name', { message: 'hello world' })
  .then(console.log)
  .catch(console.error);

Documentation

Broker

OptionDescriptionRequiredDefault
hostmessage broker connection urlyesnull
loggerlogger objectnoconsole
disableLogdisable log (all levels)nofalse
exchangeexchange optionsnonull
queuequeue optionsnonull

Exchange options

OptionDescriptionDefault
typedirect, topic, fanoutempty string (deafault)
nameexchange namenull
optionsoptions used in assertExchangenull

Queue options

OptionDescriptionDefault
namequeue namenull
optionsoptions used in assertQueuenull

broker.consume

broker.consume expects to receive an object with consumers options and routing key name and callback. Example:

const broker = require('./broker');

const queue = {
  name: 'queue.name',
  options: {
    durable: true,
  },
};

const routingKey = 'routing.key.name';

broker.consume({ queue, routingKey }, (message) => {
  // do something
  // throw an error to reject message
});

broker.publish

broker.publish expects to receive routing key, message and publish options. Example:

const options = {
  persistent: true,
  exchange: {
    name: 'exchange.name',
  },
};

broker.publish('routing.key', { message: 'message' }, options)
  .then(message => /* handle success */)
  .catch(error => /* handle error */);

broker.sendToQueue

broker.sendToQueue expects to receive queue name, message and publish options. Example:

const queue = {
  options: {},
};

broker.sendToQueue('queue.name', { message: 'message' }, { queue })
  .then(message => /* handle success */)
  .catch(error => /* handle error */);
2.1.1

4 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.2

5 years ago

1.0.1

6 years ago

1.0.0

6 years ago