npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

signal-event

v1.0.2

Published

A 700 byte zero dependency single instance of an event emitter. 🎉

Downloads

6

Readme

Signal

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;

 

Motivation

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

Installation

Using npm

npm install signal-event

yarn add signal-event

Usage

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);

API

  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