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.
35 lines
750 B
JavaScript
35 lines
750 B
JavaScript
"use strict";
|
|
|
|
module.exports = function groupEvents(events) {
|
|
let currentSender = "";
|
|
let currentType = "";
|
|
let currentEvents = [];
|
|
let eventGroups = [];
|
|
|
|
function finalizeGroup() {
|
|
if (currentEvents.length > 0) {
|
|
eventGroups.push({
|
|
sender: currentSender,
|
|
events: currentEvents
|
|
});
|
|
|
|
currentEvents = [];
|
|
}
|
|
}
|
|
|
|
events.forEach((event) => {
|
|
/* TODO: Eventually group multiple non-message events from a single user into a single event item as well, even when they are of different types */
|
|
if (event.sender !== currentSender || event.type !== currentType) {
|
|
finalizeGroup();
|
|
currentSender = event.sender;
|
|
currentType = event.type;
|
|
}
|
|
|
|
currentEvents.push(event);
|
|
});
|
|
|
|
finalizeGroup();
|
|
|
|
return eventGroups;
|
|
};
|