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

arbitrary-emitter

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arbitrary-emitter

Map based event emitter in ~350 bytes

  • 2.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-33.33%
Maintainers
1
Weekly downloads
 
Created
Source

arbitrary-emitter

ES6 Map based event emitter in ~350 bytes

Build Status npm version npm dependencies

Arbitrary-emitter stores listeners in ES6 maps, so you can use any kind of value as key for your events

const emitter = arbitraryEmitter()
const key = {}
emitter.on(key, () => doSomething())
// will `doSomething`
emitter.emit(key)
  • ~350 bytes when gzipped
  • conventional api (on, off, once and emit)
  • check weak-emitter for a version that uses weakmaps to store events

Install

Install with npm or yarn, clone the repo or download and extract the zip. Then import or insert it as script tag.

Emitter API

on(key, handler)

Adds the handler function to the event tagged with key. key can be any type of value. Every handler will be added once, despite the number of times it was added to the event. Handlers are invoked in the order they were added.

const key = {}
emitter.on(key, () => doSomething())
emitter.emit(key) // will `doSomething`

once(key, handler)

Same as on, but listener will be triggered just once, then it will be removed.

const key = {}
emitter.once(key, () => doSomethingOnce())
emitter.emit(key) // will `doSomethingOnce`
emitter.emit(key) // won't do anything

emit(key[, ...args])

Invoke all handlers tagged with key, passing the rest of the arguments

emitter.on('test', (opts) => console.log(opts.test))
const options = { test: 'Testing!' }
emitter.emit('test', options) // => 'Testing!'

off([key[, handler]])

  • If a key but no handler is passed the event will be removed
  • If key and handler are passed as arguments just the handler will be removed from the event
emitter.off(key, action) // will remove action from listeners
emitter.off(key) // will remove all the listeners tagged with `key`, and the tag itself

listeners(key)

Create and return an array with all the handlers for the event tagged with key

const f1 = () => alert('hi')
const f2 = () => alert('ho')
emitter.on('a', f1)
emitter.on('a', f2)

emitter.emitters()
// ==> [f1, f2]

Testing

npm test




© 2020 Jacobo Tabernero - Released under MIT License

Keywords

FAQs

Package last updated on 08 Jan 2020

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