Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fetch-enhanced

Package Overview
Dependencies
Maintainers
1
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

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

  • 12.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.6K
decreased by-30.59%
Maintainers
1
Weekly downloads
 
Created
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

Package last updated on 16 Jul 2024

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc