(request: Request)
| 246 | } |
| 247 | |
| 248 | async function getClientKey(request: Request): Promise<string> { |
| 249 | const ip = |
| 250 | request.headers.get("CF-Connecting-IP") || |
| 251 | request.headers.get("X-Forwarded-For")?.split(",")[0]?.trim() || |
| 252 | "unknown"; |
| 253 | const userAgent = request.headers.get("User-Agent") || "unknown"; |
| 254 | return sha256(`${ip}:${userAgent}`); |
| 255 | } |
| 256 | |
| 257 | async function sha256(value: string): Promise<string> { |
| 258 | const bytes = new TextEncoder().encode(value); |
no test coverage detected