A 700 byte zero dependency single instance of an event emitter. 馃帀
Last updated 2 years ago by nitish24p .
MITRepositoryBugsOriginal npmTarballpackage.json
$ cnpm install signal-event 
SYNC missed versions from official npm registry.


Signal is a light ~700 Bytes Singleton instance of an Event bus. It works directly in the browser or has support for commonJS and amd modules.

Its Really tiny. Check it out here;



I got the concept of creating a unified event bus whilst reading this article. What if an app had multiple tech stacks, was there was a way to communicate between them?? This can be super useful for people migrating their stacks from one to another. A unified bus is one of the ways for microservices / micro apps to communicate with one another. Typically they follow a pub sub design pattern


Using npm

npm install signal-event

yarn add signal-event


signal-event exports a function which when invoked with a consturctor will generate the same instance every single time. Thereby keeping all your events at one place.

const Signal = require('signal-event');

const S1 = new Signal();

Register An Event handler

S1.on('foo', function(data) {
  console.log(`got data for event name foo`, data)

Register Multiple Event handlers

S1.on('foo', handlerFunction1);
S1.on('foo', handlerFunction2);
S1.on('foo', handlerFunction3);
S1.on('foo', handlerFunction4);

S1.emit('foo', { foo: 'bar' })

// This will get triggered in all the handlers;

Emit an Event

S1.emit('foo', { foo: 'bar' })

Remove an Event Hanlder

function beepEventHandler(data) {
  // do something with data

S1.on('beep', beepEventHandler);

S1.emit('beep', 'bloop');

S1.remove('beep', beepEventHandler);

* If you need to remove an event handler the function specified
 must have a name, annonymous arrow fn wont work
 S1.remove('beep', () => {}); will not work

Remove All event handlers for an event

S1.remove('beep', null, true);


  1. Add Event Listener
Signal.on(eventName, handlerFunction)
  1. Emit Event
Signal.emit(eventName, data)
  1. Remove Event Handler
Signal.remove(eventName, handlerFunction, removeAllHandlers)

#Dev Setup

yarn run test
yarn run cover


Liked the repo :star: it.

Found any Bugs File them here

Current Tags

  • 1.0.2                                ...           latest (2 years ago)

3 Versions

  • 1.0.2                                ...           2 years ago
  • 1.0.1                                ...           2 years ago
  • 1.0.0                                ...           2 years ago
Maintainers (1)
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 1
Last Month 3
Dependencies (0)
Dev Dependencies (5)
Dependents (0)

Copyright 2014 - 2016 漏 |