kannon-client/classes/EventParser.js

29 lines
694 B
JavaScript
Raw Permalink Normal View History

2022-04-14 14:25:48 +02:00
const EventEmitter = require('events');
class EventParser extends EventEmitter {
constructor() {
super();
this.buffer = '';
}
parse(data) {
if (data === undefined) {
return;
}
this.buffer += data;
2022-04-21 13:40:00 +02:00
const indexOfEnd = this.buffer.indexOf(constants.EVENT_DELIMITER);
2022-04-14 14:25:48 +02:00
if (indexOfEnd === -1) {
return;
}
const event = JSON.parse(this.buffer.substring(0, indexOfEnd));
this.buffer = '';
if (event.id === undefined) {
return;
}
const eventId = event.id.toLowerCase();
this.emit(eventId, event.data);
}
}
module.exports = EventParser;