0.0.18 • Published 12 months ago

hato v0.0.18

Weekly downloads
76
License
MIT
Repository
github
Last release
12 months ago

hato

CircleCI npm node-lts npm peer dependency version Code Climate maintainability Code Climate coverage GitHub

A minimalist, customizeable AMQP framework

Installation

$ npm install hato amqplib

About

hato aims to simplify messaging without diminishing the flexibility and power in doing so.

This library is highly customizeable. Plugins allow for a configuration that fits your project and for extension of the library to meet unique requirements.

The library is built upon amqplib and is compatible with AMQP 0-9-1 and is promise based (the implementation of which can be overriden).

Getting Started

Include the library and plugins

const { Client, plugins } = require('hato');

Construct a new client

const client = new Client(BROKER_URL, {
    plugins: [
        'gracefulShutdown', // register plugin with default options
        'connectionRetry',
        'duplex',
        new plugins.Encoding('json') // instantiate for a detailed configuration
    ],

    /**
     * Optionally specify a module for logging
     */
    logger: myLogger
});

Create a queue and subscribe to an event

client
    .type('topic')
    .queue('my.queue', { exclusive: true })
    .subscribe('an.event', (msg) => {
        console.log(msg);

        // Acknowladge the message
        msg.ack();
    });

Start the client

client
    .start()
    .catch(console.error);

After the client started, you can publish a message to the queue

client
    .type('topic')
    .publish('an.event', Buffer.from('An event'))
    .catch(console.error);

Running Tests

Make sure you have a message broker running. The tests expect RabbitMQ.

$ docker run -it --name rabbitmq -p 5672:5672 rabbitmq:3.6-alpine

Then run

$ make test
$ make tdd
$ make lint

License

MIT

0.0.18

12 months ago

0.0.17

3 years ago

0.0.16

3 years ago

0.0.15

3 years ago

0.0.12

3 years ago

0.0.13

3 years ago

0.0.14

3 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

5 years ago

0.0.5

5 years ago

0.0.7

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago