kermit-bunny-hole

3.0.0 • Public • Published

Kermit Module

kermit-bunny-hole - 0.1.1

The kermit-bunny-hole node module is a kermit wrapper around the bunny-hole library for inter-service communication via AMQP.

Install

$ npm install --save kermit-bunny-hole

Configuration

Add the service to your kermit application config file:

{
  app: {
    services: {
      bunnyHole: 'kermit-bunny-hole/BunnyHoleService'
    }
  }
}

You can now configure your bunny-hole by environment variables and/or kermit service config.

ENV_VAR kermit config Description
BH_AMQP_HOST bunnyHole.amqp.host (optional) the amqp host to bind to.
BH_AMQP_PORT bunnyHole.amqp.port (optional) the amqp port to bind to.
BH_AMQP_USER bunnyHole.amqp.username (optional) the amqp user.
BH_AMQP_PASS bunnyHole.amqp.password (optional) the amqp user's password.
BH_AMQP_EXCHANGE bunnyHole.amqp.eventExchangeName (optional) the amqp exchange name.
- bunnyHole.logger (optional) a service key referencing the logging service to inject into the bunny-hole

Use

The bunny hole kermit service proxies all public methods and events of the bunny-hole. So in your application you would write something like:

launch() {
  super.launch();
 
  let bunnyHole = this.serviceManager.get('bunnyHole');
  
  bunnyHole.on('ready', () => {
    bunnyHole.expose('my/rpc/endpoint', () => {
      // callback
    });
    
    bunnyHole.call('my/other/rpc/endpoint', {param: 'value'}, () => {
      // callback
    });
    
    bunnyHole.emitEvent('my/event', {param: 'value'});
    
    bunnyHole.listenEvent('my/other-event', () => {
      // callback
    });
  });
  
  bunnyHole.on('error', (msg) => {
    console.error(`Oops an error occured on the bunny-hole: ${msg}`);
  });
}

LICENSE

The files in this archive are released under BSD-2-Clause license. You can find a copy of this license in LICENSE.

Package Sidebar

Install

npm i kermit-bunny-hole

Weekly Downloads

0

Version

3.0.0

License

BSD-2-Clause

Last publish

Collaborators

  • a-z