cc-haha/desktop/src/lib/browserSafePort.ts
2026-07-11 17:45:32 +08:00

16 lines
818 B
TypeScript

// Keep this list aligned with the WHATWG Fetch bad-port table. Desktop server
// URLs are consumed by both Node/Electron and browser fetch implementations.
// https://fetch.spec.whatwg.org/#bad-port
const FETCH_BLOCKED_PORTS = new Set([
0, 1, 7, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 25, 37, 42, 43, 53,
69, 77, 79, 87, 95, 101, 102, 103, 104, 109, 110, 111, 113, 115, 117,
119, 123, 135, 137, 139, 143, 161, 179, 389, 427, 465, 512, 513, 514,
515, 526, 530, 531, 532, 540, 548, 554, 556, 563, 587, 601, 636, 989,
990, 993, 995, 1719, 1720, 1723, 2049, 3659, 4045, 4190, 5060, 5061,
6000, 6566, 6665, 6666, 6667, 6668, 6669, 6679, 6697, 10080,
])
export function isBrowserSafePort(port: number): boolean {
return Number.isInteger(port) && port > 0 && port <= 65535 && !FETCH_BLOCKED_PORTS.has(port)
}