import type { WhoIsResponse, WhoIsData, WhoIsEvent, WhoIsIpAddresses, } from "@/types"; function checkEvents(events: WhoIsEvent[]): boolean { for (const event of events) { if (event.eventAction === "registration" && event.eventDate === "") { return true; } } return false; } function checkIpAddresses(ipAddresses: WhoIsIpAddresses): boolean { return ipAddresses.v4.length === 0 && ipAddresses.v6.length === 0; } function checkWhoIsData(data: WhoIsData): boolean { return ( checkEvents(data.events) && checkIpAddresses(data.ipAddresses) && data.nameservers.length === 0 ); } export async function isDomainAvailable(domain: string): Promise { try { const response = await fetch( `https://whois.klemek.fr/api/lookup/${domain}`, ); const content: WhoIsResponse = await response.json(); return checkWhoIsData(content.data); } catch { return false; } }