31 lines
No EOL
746 B
JavaScript
31 lines
No EOL
746 B
JavaScript
const { EVENT_DELIMITER } = require('../libs/constants.js');
|
|
const EventEmitter = require('events');
|
|
|
|
class EventParser extends EventEmitter {
|
|
|
|
constructor() {
|
|
super();
|
|
this.buffer = '';
|
|
}
|
|
|
|
parse(data) {
|
|
if (data === undefined) {
|
|
return;
|
|
}
|
|
this.buffer += data;
|
|
const indexOfEnd = this.buffer.indexOf(EVENT_DELIMITER);
|
|
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; |