![Malicious npm Package Typosquats react-login-page to Deploy Keylogger](https://cdn.sanity.io/images/cgdhsj6q/production/007b21d9cf9e03ae0bb3f577d1bd59b9d715645a-1024x1024.webp?w=400&fit=max&auto=format)
Research
Security News
Malicious npm Package Typosquats react-login-page to Deploy Keylogger
Socket researchers unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
eventemitter3
Advanced tools
Package description
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.
Readme
EventEmitter3 is a faster alternative to EventEmitter2 and the build-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
.listenerCount
function.. Just do EventEmitter.listeners(event).length
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. This module currently serves it's use in
Primus's client file.
npm install --save eventemitter3
var EventEmitter = require('eventemitter3');
// or
var EventEmitter = require('eventemitter3').EventEmitter;
For API methods see the official Node.js documentation:
FAQs
Unknown package
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.
Research
Security News
Socket researchers unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
Security News
The JavaScript community has launched the e18e initiative to improve ecosystem performance by cleaning up dependency trees, speeding up critical parts of the ecosystem, and documenting lighter alternatives to established tools.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.