export function match(search: string, ...targets: Array): boolean { const formattedTargets = targets .filter(t => t !== undefined) .map(format) return search.split(/\s+/).every(subSearch => formattedTargets.some(target => target.includes(format(subSearch))) ) } export function format(str: string): string { return unaccent(str.toLowerCase()) } function unaccent(str: string): string { return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "") }