MCPcopy Create free account
hub / github.com/bywwcnll/StreamPanel / filterMessages

Function filterMessages

devtools/modules/filterManager.js:99–134  ·  view source on GitHub ↗
(messages)

Source from the content-addressed store, hash-verified

97}
98
99export function filterMessages(messages) {
100 if (state.messageFilters.length === 0) {
101 return messages;
102 }
103
104 return messages.filter(msg => {
105 try {
106 const parsed = JSON.parse(msg.data);
107
108 return state.messageFilters.every(filter => {
109 const fieldValue = getNestedValue(parsed, filter.field);
110
111 if (fieldValue === undefined) {
112 return false;
113 }
114
115 const fieldValues = Array.isArray(fieldValue) ? fieldValue : [fieldValue];
116 const filterValueStr = String(filter.value);
117
118 return fieldValues.some(value => {
119 const fieldValueStr = String(value);
120
121 if (filter.mode === 'equals') {
122 return fieldValueStr === filterValueStr;
123 } else if (filter.mode === 'contains') {
124 return fieldValueStr.includes(filterValueStr);
125 }
126
127 return true;
128 });
129 });
130 } catch (e) {
131 return false;
132 }
133 });
134}
135
136export function addFilterCondition() {
137 const availableFields = getAvailableFields();

Callers 1

getVisibleMessagesFunction · 0.90

Calls 1

getNestedValueFunction · 0.70

Tested by

no test coverage detected