
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Minimal and fast JavaScript event emitter for Node.js and front-end (only 1kb minified!).
Minimal and fast JavaScript / TypeScript event emitter for Node.js and front-end.
Only 1kb minified (577 bytes gzipped).
Via NPM
npm install evemit --save
Or download the evemit.min.js file.
If Evemit
is used in CommonJS environment (Node.js, Browserify, Webpack, ...),
it is exposed as module with module.exports
.
So in CommonJS, evemit is not exposed in the global scope (even on client side) :)
const ev = require('evemit');
// true (it's the constructor)
console.log(typeof ev === 'function');
// undefined, even on front-end with Browserify, Webpack, ...
console.log(typeof Evemit);
Basic usage (without CommonJS)
// true
console.log(typeof Evemit === 'function');
// true
console.log(typeof window.Evemit === 'function');
const Evemit = require('evemit');
// Or if you are not in an environment CommonJS (Node.js, Browserify, Webpack, ...)
// uses directly `Evemit`, without `var Evemit = require('evemit')`
const obj = new Evemit();
obj.on('say-hello', function(hello) {
console.log(hello); // Hello World!
});
obj.emit('say-hello', 'Hello World!');
See the complete API doc.
Add a listener.
obj.on('say-hello', function(hello) {
console.log(hello); // Hello World!
});
obj.emit('say-hello', 'Hello World!');
Listen once
function myCallback(data) {
console.log(data.hello); // Hello 1
}
// Add listener, defined to be triggered "once"
obj.once('say-hello', myCallback);
// myCallback() is invoked and the listener is removed
obj.emit('say-hello', {
hello: 'Hello 1'
});
// myCallback() is not called because it is no longer listening on this event
obj.emit('say-hello', {
hello: 'Hello 2'
});
Emit an event
obj.emit('ping');
With arguments passed to the listeners
obj.emit('ping', 'arg1', 'arg2', {an: 'object'});
Remove a listener
function myCallback(data) {
// some code ...
}
// add
a.on('say-hello', myCallback);
// remove
a.off('say-hello', myCallback);
Get all listeners
// Returns an array containing all listeners
obj.listeners();
Count all listeners
// Returns a number.
obj.listeners().length;
Get all listeners of a given event
// Returns an array of listeners
obj.listeners('say-hello');
Count all listeners of a given event
obj.listeners('say-hello').length;
The methods of the Array
object can be used to manage the listeners.
Example
// reverse the order of the listeners execution
obj.listeners('my-event').reverse();
// slices
obj.listeners('my-event').slice(1, 3);
// Removes the first listener of the stack, and returns that listener
const firstListener = obj.listeners('my-event').shift();
// Removes the last listener of the stack, and returns that listener
const lastListener = obj.listeners('my-event').pop();
// ...
Use the property obj.events
if you want to get an object like
{event1: [array of listeners], event2: [array of listeners], ...}
evemit
is unit tested with Unit.js.
Run the tests
cd node_modules/evemit
npm test
To execute the tests on client side, download the test
directory and go on test/index.html file with your browser.
MIT (c) 2014, Nicolas Tallefourtane.
Nicolas Talle |
![]() |
FAQs
Minimal and fast JavaScript event emitter for Node.js and front-end (only 1kb minified!).
The npm package evemit receives a total of 4 weekly downloads. As such, evemit popularity was classified as not popular.
We found that evemit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.