No Bun, fetch suporta enviar requisições através de um proxy HTTP ou HTTPS. Isso é útil em redes corporativas ou quando você precisa garantir que uma requisição seja enviada através de um endereço IP específico.
await fetch("https://example.com", {
// A URL do servidor proxy
proxy: "https://username:password@proxy.example.com:8080",
});A opção proxy pode ser uma string URL ou um objeto com url e headers opcionais. A URL pode incluir nome de usuário e senha se o proxy exigir autenticação. Pode ser http:// ou https://.
Headers de proxy personalizados
Para enviar headers personalizados ao servidor proxy (útil para tokens de autenticação de proxy, roteamento personalizado, etc.), use o formato de objeto:
await fetch("https://example.com", {
proxy: {
url: "https://proxy.example.com:8080",
headers: {
"Proxy-Authorization": "Bearer my-token",
"X-Proxy-Region": "us-east-1",
},
},
});A propriedade headers aceita um objeto simples ou uma instância Headers. Esses headers são enviados diretamente ao servidor proxy em requisições CONNECT (para destinos HTTPS) ou na requisição de proxy (para destinos HTTP).
Se você fornecer um header Proxy-Authorization, ele substituirá quaisquer credenciais especificadas na URL do proxy.
Variáveis de ambiente
Você também pode definir a variável de ambiente $HTTP_PROXY ou $HTTPS_PROXY para a URL do proxy. Isso é útil quando deseja usar o mesmo proxy para todas as requisições.
HTTPS_PROXY=https://username:password@proxy.example.com:8080 bun run index.ts