You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/hydro/service/bus.js

16 lines
413 B
JavaScript

const { EventEmitter } = require('events');
const bus = new EventEmitter();
global.Hydro.service.bus = module.exports = {
subscribe(events, handler) {
for (const event of events) bus.on(event, handler);
},
unsubscribe(events, handler) {
for (const event of events) bus.off(event, handler);
},
publish(event, data) {
bus.emit(event, { value: data, event });
},
};