Spaces:
Runtime error
Runtime error
| import { isIP } from "node:net"; | |
| export type ProxyFamily = "auto" | "ipv4" | "ipv6"; | |
| /** Remove the surrounding brackets from an IPv6 literal host (`[::1]` -> `::1`). */ | |
| export function stripIpv6Brackets(host: string): string { | |
| if (typeof host !== "string") return ""; | |
| if (host.startsWith("[") && host.endsWith("]")) { | |
| return host.slice(1, -1); | |
| } | |
| return host; | |
| } | |
| /** 4 / 6 if the host is an IP literal (brackets tolerated), null if it is a hostname. */ | |
| export function detectIpLiteralFamily(host: string): 4 | 6 | null { | |
| const bare = stripIpv6Brackets(host); | |
| const v = isIP(bare); | |
| return v === 0 ? null : (v as 4 | 6); | |
| } | |
| /** Normalize a stored family directive; anything unknown means "auto". */ | |
| export function parseProxyFamily(value: unknown): ProxyFamily { | |
| return value === "ipv4" || value === "ipv6" ? value : "auto"; | |
| } | |