feat: add exclude event filters
This commit is contained in:
@@ -186,8 +186,26 @@ function matchEventFilters(
|
||||
case 'regex': {
|
||||
return value
|
||||
.map((val) => stripLeadingAndTrailingSlashes(String(val)))
|
||||
.some((val) => new RegExp(val).test(propertyValue));
|
||||
.some((val) => {
|
||||
try {
|
||||
return new RegExp(val).test(propertyValue);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
case 'isNull':
|
||||
return propertyValue === '';
|
||||
case 'isNotNull':
|
||||
return propertyValue !== '';
|
||||
case 'gt':
|
||||
return value.some((val) => Number(propertyValue) > Number(val));
|
||||
case 'lt':
|
||||
return value.some((val) => Number(propertyValue) < Number(val));
|
||||
case 'gte':
|
||||
return value.some((val) => Number(propertyValue) >= Number(val));
|
||||
case 'lte':
|
||||
return value.some((val) => Number(propertyValue) <= Number(val));
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -465,9 +465,15 @@ export const zProjectFilterProfileId = z.object({
|
||||
});
|
||||
export type IProjectFilterProfileId = z.infer<typeof zProjectFilterProfileId>;
|
||||
|
||||
export const zProjectFilterEvent = zChartEvent.extend({
|
||||
type: z.literal('event'),
|
||||
});
|
||||
export type IProjectFilterEvent = z.infer<typeof zProjectFilterEvent>;
|
||||
|
||||
export const zProjectFilters = z.discriminatedUnion('type', [
|
||||
zProjectFilterIp,
|
||||
zProjectFilterProfileId,
|
||||
zProjectFilterEvent,
|
||||
]);
|
||||
export type IProjectFilters = z.infer<typeof zProjectFilters>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user