@gguf/claw
Version:
WhatsApp gateway CLI (Baileys web) with Pi RPC agent
22 lines (19 loc) • 658 B
text/typescript
import type { Dispatcher } from "undici";
import { ProxyAgent, fetch as undiciFetch } from "undici";
import type { ZaloFetch } from "./api.js";
const proxyCache = new Map<string, ZaloFetch>();
export function resolveZaloProxyFetch(proxyUrl?: string | null): ZaloFetch | undefined {
const trimmed = proxyUrl?.trim();
if (!trimmed) {
return undefined;
}
const cached = proxyCache.get(trimmed);
if (cached) {
return cached;
}
const agent = new ProxyAgent(trimmed);
const fetcher: ZaloFetch = (input, init) =>
undiciFetch(input, { ...init, dispatcher: agent as Dispatcher });
proxyCache.set(trimmed, fetcher);
return fetcher;
}