Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
eventemitter3
Advanced tools
EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.
The eventemitter3 package is a high-performance event emitter library that provides an interface for emitting and listening to events. It is a drop-in replacement for existing EventEmitter implementations with a focus on performance.
Emitting events
This feature allows you to emit events with a specified name and pass arguments to the event listeners.
const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
emitter.on('greet', function(message) {
console.log(message);
});
emitter.emit('greet', 'Hello World!');
Listening to events
This feature allows you to add a listener for a specific type of event. The listener will be invoked when an event with that name is emitted.
const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
emitter.on('greet', function(message) {
console.log(message);
});
Removing event listeners
This feature allows you to remove a specific listener from an event so that it no longer gets called when the event is emitted.
const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
function onGreet(message) {
console.log(message);
}
emitter.on('greet', onGreet);
emitter.removeListener('greet', onGreet);
Once listeners
This feature allows you to add a one-time listener for an event. The listener will be invoked only the first time the event is emitted, after which it is removed.
const EventEmitter = require('eventemitter3');
const emitter = new EventEmitter();
emitter.once('greet', function(message) {
console.log('This will only be logged once:', message);
});
emitter.emit('greet', 'Hello World!');
emitter.emit('greet', 'Hello again!');
The 'events' package is Node.js's native event emitter implementation. It is very similar to eventemitter3 but may not be as optimized for performance.
Mitt is a tiny functional event emitter / pubsub. It offers the same core functionality as eventemitter3 but with a smaller footprint and a functional API.
Wolfy87's EventEmitter is an implementation of the EventEmitter module found in Node.js but can be used in the browser. It is larger in size compared to eventemitter3 and includes additional features like namespaces and wildcard listeners.
EventEmitter3 is a faster alternative to EventEmitter2 and the built-in EventEmitter that ships within Node.js. It removes some features that you might not need:
newListener
event is emitted when an event is emitted.setMaxListeners
, the function exists, but does nothing.listenerCount
function.. Just do EventEmitter.listeners(event).length
And adds some features you want:
EE.on(event, fn, context)
which also works with once EE.once(event, fn, context)
It's a drop in replacement of your existing EventEmitters, but just faster. Free performance, who wouldn't want that?
The source of the EventEmitter is compatible for browser usage, no fancy pancy
Array.isArray
stuff is used, it's just plain ol JavaScript that should even
work IE5 if you want to.
$ npm install --save eventemitter3
or as a component
$ component install eventemitter3
then
var EventEmitter = require('eventemitter3');
// or
var EventEmitter = require('eventemitter3').EventEmitter;
For API methods see the official Node.js documentation:
FAQs
EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.
We found that eventemitter3 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
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.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.