Socket
Socket
Sign inDemoInstall

fetch-enhanced

Package Overview
Dependencies
4
Maintainers
1
Versions
55
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    fetch-enhanced

fetch wrapper with support for automatic HTTP proxy, timeout and accessible agent options


Version published
Weekly downloads
1.1K
decreased by-20.06%
Maintainers
1
Install size
124 kB
Created
Weekly downloads
 

Readme

Source

fetch-enhanced

fetch-enhanced wraps a provided fetch-like function like undici or node-fetch and adds:

  • HTTP Proxy discovery from standard environment variables
  • HTTP Request Timeout support
  • Accessible agent/dispatcher options

Usage

import {fetch as undiciFetch} from "undici";
import fetchEnhanced from "fetch-enhanced";

const fetch = fetchEnhanced(undiciFetch, {undici: true});
await fetch("https://example.com");

API

fetchEnhanced(fetchImplementation, opts)

  • fetchImplementation: Function A fetch-like module that takes (url, opts) and a agent (like node-fetch) or dispatcher (like undici) option.
  • opts Object Required.
    • agentCacheSize: number Size of the agent cache. Default: 512.
    • undici: boolean Whether the fetch implementation is undici. Required.

Returns: A wrapped fetch function.

fetch(url, [opts])

  • opts Object
    • timeout: number Request timeout in milliseconds. Default: 0 (meaning no timeout).
    • noProxy: boolean Explicitely disable any proxy server use. Default: false.
    • agent: http.Agent Custom HTTP agent. When specified, proxy discovery will no longer work.
    • agentOpts: object Agent or Dispatcher options.Default: {maxSockets: 64, keepAlive: false}
      • agentOpts.noProxy: boolean Do not use proxy in any case. Default: false.
    • Any valid fetch module option, like for node-fetch

TimeoutError

Error class that can be used for err instanceof TimeoutError:

import {TimeoutError} from "fetch-enhanced";

try {
  await fetch("https://example.com", {timeout: 0});
} catch (err) {
  console.log(err instanceof TimeoutError);
  // => true
}

fetch.clearCache()

Clear the agent cache and destroys all cached agents. This is generally only neccessary when the proxy environment variables are expected to change during runtime.

process.env.HTTPS_PROXY = "https://proxy1.dev";
await fetch("https://example.com");
fetch.clearCache();
process.env.HTTPS_PROXY = "https://proxy2.dev";
await fetch("https://example.com");

© silverwind, distributed under BSD licence

FAQs

Last updated on 16 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc