A super lightweight pubsub module. Around 1Kb minified, ~500B minified and gzipped.
Cov is short for covenants.
- NPM:
npm install covjs
A global cov
object is exported for quick and convienient usage.
var { cov } = require('covjs');
If you require multiple instances or other complex use-cases, a Covenant
function
is exported so you can create your own cov
object.
var { Covenant } = require('covjs');
var cov = new Covenant();
// Subscribe to the 'Cov-Name' covenant, execute function when signaled
cov.on('Cov-Name', function(arg1, arg2) {
var data = {
foo: arg1,
bar: arg2
};
doSomething(data)
});
// Function will only fire for first signal of 'Cov-Name'.
cov.once('Cov-Name', function(arg1, arg2) {
var data = {
foo: arg1,
bar: arg2
};
doSomethingOnce(data)
});
// Signal this covenant with 2 arguments
cov.signal('Cov-Name', ['argument 1', 'argument 2']);
// unsubscribe from 'Cov-Name'
cov.off('Cov-Name');
You'll need to save the token returned by your call to cov.on()
or you can pass the same function to cov.off that you passed to the cov.on function.
Unsubscribe using token
var firstListener = cov.on('Cov-Name', function() {
console.log('First Listener has fired!');
});
var secondListener = cov.on('Cov-Name', function() {
console.log('Second listener has fired!');
});
// Both First and Second Listeners will fire
cov.signal('Cov-Name');
// Unsubscribe just the first Listener
cov.off('Cov-Name', firstListener);
// Only Second Listener will fire
cov.signal('Cov-Name');
Unsubscribe using function reference
var callback = function() {
console.log('First Listener has fired!');
};
// Subscribe callback
cov.on('Cov-Name', callback);
// Callback will fire
cov.signal('Cov-Name');
// Unsubscribe callback
cov.off('Cov-Name', callback);
// Callback will NOT fire
cov.signal('Cov-Name');