eventemitter-bus

1.0.1 • Public • Published

NPM version Build Status Coverage Status

A simple node.js Enterprise Software Bus (ESB) implementation using EventEmitter.

See some examples

Installation

$ npm install eventemitter-bus --save

Development

$ npm install
$ npm test

API

// Default instance
let bus = require('eventemitter-bus');

// Or an instance managed by you
let bus = new require('eventemitter-bus').Bus();

bus.provide(name, obj, replace);

bus.provide('calculator', {
    sub: function(a, b) {
        bus.emit('calculator.sub', {
            a: a
            , b: b
            , result: a - b
        });
    }
})

bus.replace(name, obj)

bus.replace('calculator', {
    add: function(a, b) {
        bus.emit('calculator.add', {
            a: a
            , b: b
            , result: a + b
        })
    }
});

bus.on(event, fn)

bus.on('calculator.sub', (res) => {
    console.log('calculator.sub =>', res);
});

bus.run(name)

bus.run('calculator.sub', 10, 5);

bus.fn.run(name)

// alias to bus.run()
bus.fn.run('calculator.sub', 10, 5);

bus.fn.provide(name, fn, replace)

bus.fn.provide('calculator', function add(a, b) {
    bus.emit('calculator.add', {
        a: a
        , b: b
        , result: a + b
    });
});

bus.fn.replace(name, fn)

bus.fn.replace('calculator', function sub(a, b) {
    bus.emit('calculator.sub', {
        a: a
        , b: b
        , result: a - b
    });
});

Package Sidebar

Install

npm i eventemitter-bus

Weekly Downloads

2

Version

1.0.1

License

BSD-2-Clause

Last publish

Collaborators

  • zewish