Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

js-event-bus

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-event-bus

Event bus for your Javascript applications

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5K
decreased by-3.06%
Maintainers
1
Weekly downloads
 
Created
Source

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.

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

Keywords

FAQs

Package last updated on 10 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc