Team Ai
Apppublic

oex2003/evolution-api

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
advancedOperatorsSearch.ts46 linesDownload Raw Back to utils
1function normalizeString(str: string): string {2  return str3    .normalize('NFD')4    .replace(/[\u0300-\u036f]/g, '')5    .toLowerCase();6}7 8export function advancedOperatorsSearch(data: string, query: string): boolean {9  const filters = query.split(' ').reduce((acc: Record<string, string[]>, filter) => {10    const [operator, ...values] = filter.split(':');11    const value = values.join(':');12 13    if (!acc[operator]) {14      acc[operator] = [];15    }16    acc[operator].push(value);17    return acc;18  }, {});19 20  const normalizedItem = normalizeString(data);21 22  return Object.entries(filters).every(([operator, values]) => {23    return values.some((val) => {24      const subValues = val.split(',');25      return subValues.every((subVal) => {26        const normalizedSubVal = normalizeString(subVal);27 28        switch (operator.toLowerCase()) {29          case 'contains':30            return normalizedItem.includes(normalizedSubVal);31          case 'notcontains':32            return !normalizedItem.includes(normalizedSubVal);33          case 'startswith':34            return normalizedItem.startsWith(normalizedSubVal);35          case 'endswith':36            return normalizedItem.endsWith(normalizedSubVal);37          case 'exact':38            return normalizedItem === normalizedSubVal;39          default:40            return false;41        }42      });43    });44  });45}46