abonnement
Tiny JavaScript library to handle event callback registration.
Highlights:
- No dependencies
- Usable in vanilla JavaScript, even ES5
- Tiny! Weighs under 1kB
Usage
Install the library:
npm install abonnement --save
Use it in any JavaScript object:
const events = abonnement();
const onNewData = events.getRegisterHandler('newData');
onNewData(data => console.log(data));
events.trigger('newData');
Modular Architecture Example
The main purpose of abonnement is to simplify modular architecture in an ES5 context.
The event handler pattern allow us to connect modules without having explicit dependencies.
function createBack() {
const events = abonnement();
setTimeout(() => events.trigger('end'), 3000);
return {
onEnd: events.getRegisterHandler('end')
};
}
function createFront() {
function display(message) {
console.log(message);
}
return {
display
};
}
const back = createBack();
const front = createFront();
back.onEnd(function() {
front.display("Time out!");
});
API
Event triggering
const events = abonnement();
events.trigger('end');
events.trigger('newData', { id: 'john' });
Event subscription
const events = abonnement();
const onEnd = events.getRegisterHandler('end');
onEnd(() => console.log('Time out!'));
const onNewData = events.getRegisterHandler('newData');
onNewData(data => console.log(`New user connected: ${data.id}`));
onNewData({ id: 'john' }, data => console.log('John is connected'));
onNewData('john', data => console.log('John is connected'));
const onNewData = events.getRegisterHandler('newData', 'name');
onNewData('John', data => console.log('John is connected'));
events.trigger('newData', { id: 76, name: 'John' });
License
MIT. Copyright (c) Thomas Zilliox.