Security News
RubyGems.org Adds New Maintainer Role
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.
event-pubsub
Advanced tools
Pubsub events for Node and the browser allowing event scoping and multiple scopes. Easy for any developer level. No frills, just high speed pubsub events!
The event-pubsub package is a Node.js module that provides a simple interface for implementing the publish-subscribe pattern. This pattern allows for the creation of a decoupled system where publishers and subscribers can communicate through events without being directly connected.
Event Emission
This feature allows you to emit events with a specified name and pass data to the event listeners. In the code sample, an event listener is set up to listen for the 'sayHello' event and emit that event with a parameter.
const EventPubSub = require('event-pubsub');
const events = new EventPubSub();
// Event listener
events.on('sayHello', name => console.log(`Hello, ${name}!`));
// Emit event
events.emit('sayHello', 'World');
Event Listening
This feature allows you to listen for events by name. When the event is emitted, the callback function is called with any data passed to the event. In the code sample, an event listener is set up to listen for the 'dataReceived' event.
const EventPubSub = require('event-pubsub');
const events = new EventPubSub();
// Event listener
events.on('dataReceived', data => console.log(`Data: ${data}`));
Once Listeners
This feature allows you to set up event listeners that will only be triggered once. After the event is emitted and the listener is invoked, the listener is removed. In the code sample, an event listener is set up to listen for the 'initialize' event and will only be triggered once.
const EventPubSub = require('event-pubsub');
const events = new EventPubSub();
// Event listener that fires once
events.once('initialize', () => console.log('Initialization complete.'));
Removing Listeners
This feature allows you to remove specific event listeners. In the code sample, an event listener is added and then removed for the 'message' event.
const EventPubSub = require('event-pubsub');
const events = new EventPubSub();
function onMessage(content) {
console.log(`Message: ${content}`);
}
// Add and remove an event listener
events.on('message', onMessage);
events.off('message', onMessage);
eventemitter3 is a high performance EventEmitter. It provides similar functionality to event-pubsub but focuses on performance and is compatible with different module systems (CommonJS, AMD, and browser globals).
mitt is a tiny functional event emitter / pubsub. It offers a similar publish-subscribe pattern but with a smaller footprint, making it a good choice for front-end development and projects where size is a concern.
wolfy87-eventemitter is an EventEmitter implementation that provides asynchronous event emitting and namespaced events. It is more feature-rich compared to event-pubsub, offering additional functionality such as context binding and wildcard events.
npm info :
GitHub info :
Pubsub events for Node and the browser allowing event scoping and multiple scopes. Easy for any developer level. No frills, just high speed pubsub events!
See NPM stats for event-pubsub
EXAMPLE FILES
Node Install
npm install event-pubsub
Browser Install
see browser examples above or below
NOTE - the only diffeence between node and browser code is how the events
variable is created
var events = new require('../../event-pubsub.js')();
var events = new window.pubsub();
var events = new require('../../event-pubsub.js')();
events.on(
'hello',
function(data){
console.log('hello event recieved ', data);
}
);
events.on(
'*',
function(type){
console.log('Catch all detected event type of : ',type, '. List of all the sent arguments ',arguments);
}
);
events.on(
'removeEvents',
function(){
events.off('*','*');
console.log('Removed all events');
}
);
/************************************\
* trigger events for testing
* **********************************/
events.trigger(
'hello',
'world'
);
events.trigger(
'removeEvents'
);
<!DOCTYPE html>
<html>
<head>
<title>PubSub Example</title>
<script src='../../event-pubsub-browser.js'></script>
<script src='yourAmazingCode.js'></script>
</head>
<body>
...
</body>
</html>
var events = new window.pubsub();
events.on(
'hello',
function(data){
console.log('hello event recieved ', data);
}
);
events.on(
'*',
function(type){
console.log('Catch all detected event type of : ',type, '. List of all the sent arguments ',arguments);
}
);
events.on(
'removeEvents',
function(){
events.off('*','*');
console.log('Removed all events');
}
);
/************************************\
* trigger events for testing
* **********************************/
events.trigger(
'hello',
'world'
);
events.trigger(
'removeEvents'
);
FAQs
Super light and fast Extensible ES6+ events and EventEmitters for Node and the browser. Easy for any developer level, use the same exact code in node and the browser. No frills, just high speed events!
The npm package event-pubsub receives a total of 726,174 weekly downloads. As such, event-pubsub popularity was classified as popular.
We found that event-pubsub 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
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.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.