kannon/classes/EventParser.js

30 lines
695 B
JavaScript
Raw Normal View History

2022-04-14 14:23:41 +02:00
const EventEmitter = require('events');
class EventParser extends EventEmitter {
constructor() {
super();
this.buffer = '';
}
2022-04-20 16:15:33 +02:00
parse(data) {
2022-04-14 14:23:41 +02:00
if (data === undefined) {
return;
}
this.buffer += data;
2022-04-21 13:43:33 +02:00
const indexOfEnd = this.buffer.indexOf(constants.EVENT_DELIMITER);
2022-04-14 14:23:41 +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();
2022-04-20 16:15:33 +02:00
this.emit(eventId, event.data);
2022-04-14 14:23:41 +02:00
}
}
module.exports = EventParser;