base-events
v0.0.5
Published
Provides easy way to subscribe and emit events. Super light component
Downloads
1,567
Readme
Base events
Provides easy way to subscribe and emit events. Super light component
npm install --save base-events
How to use
import BaseEvents from 'base-events';
const events = new BaseEvents();
events.on('a.b.c', () => {
console.log('a.b.c fired');
});
events.once('x.y.z', () => {
console.log('x.y.z fired');
});
events.emit('a.b.c');
events.emit('x.y.z');
events.emit('x.y.z'); // will not emit x.y.z for second time
const off = events.on('a', () => {
// ....
});
off(); // unsubscribe listener
Extends
import BaseEvents from 'base-events';
class Manager extends BaseEvents {
constructor() {
super();
}
add(component) {
// ...
this.emit('component.add', {
component
});
}
}
const manager = new Manager();
manager.on('component.add', ({ component }) => {
// ....
});
Available methods
on(event, callback)
- subscribe for event. Returns unsubscribe functiononce(event, callback)
- subscribe for event. Will be emitted only one timeemit(event, arguments)
- trigger event with provided arguments
Community
You are always welcome for ideas and pull requests :)
TODO
- [ ] Event keys as patterns. If you are interested in this - please comment here https://github.com/tuchk4/base-events/issues/1
const events = new BaseEvents();
events.on('a', () => { ... });
events.on('a.*', () => { ... });
events.on('a.b.c', () => { ... });
events.on('a.*.c', () => { ... });
events.emit('a', params); // available listeners: a
events.emit('a.b.c', params); // available listeners: a.* / a.b.c / a.*.c
events.emit('a.B.c', params); // available listeners: a.*.c
events.emit('x.y.z', params); // no listeners
events.emit('a', params); // available listeners: a