Neptunium, Promethium, Manganese

    js-event-bus
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.1 • Public • Published

    js-event-bus

    Simple Event Bus library built for any JavaScript application.

    Installation

    Using npm

    npm i js-event-bus --save
    

    Using yarn

    yarn add js-event-bus
    

    Usage

    This library was built so you can use it in any JS application like Node.js apps, browser apps etc. The API is always the same.

    Importing in Node.js application

    If you want to use it in your Node.js apps you can import the library like this:

    const eventBus = require('js-event-bus')();

    Importing in browser application

    If you want to use it in your Browser apps you can import the library like this:

    <body>
    
      <div>Put your content here</div>
    
      <script src="/lib/js-event-bus/lib/js-event-bus.min.js"></script>
      <script>
        const eventBus = new EventBus();
      </script>
    </body>

    Api of the library

    Register to an event

      eventBus.on('my-event', function () {
        console.log('Inside `my-event`');
      });

    With this code, each time my-event is emited this function will be executed.

    Register only one time to an event

      eventBus.once('my-event', function () {
        console.log('Inside `my-event`. It\'ll be executed only one time!');
      });

    With this code, when my-event is emited this function will be executed. The next triggers of this event won't execute the callback because it is a one time event.

    Register several time to an event

      eventBus.exactly(3, 'my-event', function () {
        console.log('Inside `my-event`. It\'ll be executed only 3 times!');
      });

    With this code, when my-event is emited this function will be executed with a maximum of triggers of 3.

    Register using wildcards

    You can use wildcards to register listeners using a specific pattern.

      eventBus.on('my-event.*', function () {
        console.log('Inside `my-event.*`');
      });

    The callback will be executed with the events like my-event.x.

    • my-event.x will trigger the callback ;
    • my-event.y will trigger the callback ;
    • my-event will not trigger the callback ;
    • my-event.x.y will not trigger the callback ;

    You can also use multiple wildcards to register listeners using a specific pattern.

      eventBus.on('my-event.*.name.**', function () {
        console.log('my-event.*.name.**`');
      });

    The callback will be executed with the events like my-event.a.name.b.c.

    • my-event.a.name.b.c will trigger the callback ;
    • my-event.a.name.b will trigger the callback ;
    • my-event.name.b will not trigger the callback ;

    Emit an event

    You can emit an event by calling the emit function. The arguments are the following:

    • the name of the event ;
    • the context with which it will be fired ;
    • ... all the arguments.

    Here are some examples:

      eventBus.emit('my-event');
      eventBus.emit('my-event', null, 'a', 'b'); // your callback sould be function (a, b) { ... }
      eventBus.emit('my-event', new SomeObject, 'a', 'b'); // your callback sould be function (a, b) { ... } and `this` will be set to the context of `SomeObject`

    Detach an event

      var callbackForMyEvent = function () {
        console.log('Inside `my-event`.');
      };
    
      eventBus.on('my-event', callbackForMyEvent);
    
      eventBus.emit('my-event');
    
      eventBus.detach('my-event', callbackForMyEvent);

    This code will emit the event my-event and then detach the given callback for this event. So it'll not be executed anymore.

    Detach an event for all the callbacks that have been set before

      eventBus.detach('my-event');

    This code will remove the event my-event from the event bus.

    Detach all the events created in the event bus

      eventBus.detachAll();

    This code will remove the event my-event from the event bus.

    Remove an event

      eventBus.on('my-event', function () {
        console.log('Inside `my-event`.');
      });
    
      eventBus.emit('my-event');
    
      eventBus.die('my-event');

    This code will emit the event my-event and then detach all the callbacks for this event. So any of them won't be executed anymore.

    Note that off is an alias of die.

    License

    MIT

    Install

    npm i js-event-bus

    DownloadsWeekly Downloads

    3,139

    Version

    1.1.1

    License

    MIT

    Unpacked Size

    15.6 kB

    Total Files

    6

    Last publish

    Collaborators

    • bobo_dev