(header: string | string[] | undefined)
| 25 | * valid later entries — so empty segments are skipped. |
| 26 | */ |
| 27 | export function firstForwardedValue(header: string | string[] | undefined): string | undefined { |
| 28 | const raw = Array.isArray(header) ? header.join(",") : header; |
| 29 | if (raw === undefined) return undefined; |
| 30 | for (const segment of raw.split(",")) { |
| 31 | const trimmed = segment.trim(); |
| 32 | if (trimmed) return trimmed; |
| 33 | } |
| 34 | return undefined; |
| 35 | } |
| 36 | |
| 37 | // Conservative host[:port] shape for x-forwarded-host. Spaces, slashes, |
| 38 | // userinfo, or any other URL-structure character would corrupt (or smuggle |
no outgoing calls
no test coverage detected
searching dependent graphs…