import { z } from "zod" import { Lang } from "../constants/language" export const languageSchema = z.preprocess( (arg) => (typeof arg === "string" ? arg.toLowerCase() : arg), z.nativeEnum(Lang) ) export function isValidLang(lang?: string): lang is Lang { const result = languageSchema.safeParse(lang) return result.success } export function findLang(pathname: string): Lang | undefined { const langFromPath = Object.values(Lang).find( (l) => pathname.startsWith(`/${l}/`) || pathname === `/${l}` ) return isValidLang(langFromPath) ? langFromPath : undefined } /** * Helper function to convert lang string to Lang enum. */ export function toLang(lang: string): Lang | undefined { const lowerCaseLang = lang.toLowerCase() return Object.values(Lang).find((l) => l === lowerCaseLang) }