import type { Location } from "@/types/trpc/routers/hotel/locations" export function getSearchTokens(location: Location) { const tokens = [ ...(location.keyWords?.map((x) => x.toLocaleLowerCase()) ?? []), location.name, location.type === "hotels" ? location.relationships.city.name : location.country, ] .filter(hasValue) .map((x) => x.toLocaleLowerCase()) const additionalTokens: string[] = [] tokens.forEach((token) => { const replaced = token .replace(/å/g, "a") .replace(/ä/g, "a") .replace(/ö/g, "o") .replace(/æ/g, "a") .replace(/ø/g, "o") .replace(/é/g, "e") .replace(/ü/g, "u") if (replaced !== token) { additionalTokens.push(replaced) } }) const allTokens = [...new Set([...tokens, ...additionalTokens])] return allTokens } function hasValue(value: string | null | undefined): value is string { return !!value && value.length > 0 }