Files
dougal-software/lib/www/server/events/index.js
D. Berge 5af89050fb Refactor SOL/EOL real-time detection handler.
This also implements a generic handler mechanism that can be
reused for other purposes, such as sending email / XMPP notifications,
doing real-time QC checks and so on.

Fixes #113.
2021-05-24 13:48:53 +02:00

26 lines
730 B
JavaScript

const { listen } = require('../ws/db');
const channels = require('../lib/db/channels');
const handlers = require('./handlers').init();
function start () {
listen(channels, async function (data) {
for (const handler of handlers) {
// NOTE: We are intentionally passing the same instance
// of the data to every handler. This means that earlier
// handlers could, in principle, modify the data to be
// consumed by latter ones, provided that they are
// synchronous (as otherwise, the completion order is
// undefined).
await handler.run(data);
}
});
console.log("Events manager started.", handlers.length, "active handlers");
}
module.exports = { start }
if (require.main === module) {
start();
}