|
|
|
@ -714,7 +714,7 @@ const startServer = async () => {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// If the payload already contains the `filtered` property, it means
|
|
|
|
|
// that filtering has been applied on the ruby on rails side, as
|
|
|
|
|
// that filtering has been applied on the ruby on rails side, as
|
|
|
|
|
// such, we don't need to construct or apply the filters in streaming:
|
|
|
|
|
if (Object.prototype.hasOwnProperty.call(payload, "filtered")) {
|
|
|
|
|
transmit(event, payload);
|
|
|
|
@ -786,12 +786,12 @@ const startServer = async () => {
|
|
|
|
|
const filter_results = Object.values(req.cachedFilters).reduce((results, cachedFilter) => {
|
|
|
|
|
// Check the filter hasn't expired before applying:
|
|
|
|
|
if (cachedFilter.expires_at !== null && cachedFilter.expires_at < now) {
|
|
|
|
|
return;
|
|
|
|
|
return results;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Just in-case JSDOM fails to find textContent in searchableContent
|
|
|
|
|
if (!searchableTextContent) {
|
|
|
|
|
return;
|
|
|
|
|
return results;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const keyword_matches = searchableTextContent.match(cachedFilter.regexp);
|
|
|
|
@ -806,6 +806,8 @@ const startServer = async () => {
|
|
|
|
|
status_matches: null
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return results;
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
// Send the payload + the FilterResults as the `filtered` property
|
|
|
|
|