CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-make-fetch-happen

Opinionated, caching, retrying fetch client for Node.js with enterprise-grade HTTP features

74

1.68x
Overview
Eval results
Files

rubric.jsonevals/scenario-6/

{
  "context": "Evaluates whether the redirect-aware client relies on make-fetch-happen's built-in redirect controls to meet the spec. Checks cover follow/manual/error modes, redirect limits, and method normalization across protocol switches without reimplementing redirect logic.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Follow mode",
      "description": "Configures make-fetch-happen with redirect: 'follow' (and optional follow count) to traverse http->https chains, using the library's Response.url/redirected handling instead of manual HTTP requests.",
      "max_score": 30
    },
    {
      "name": "Manual mode",
      "description": "Uses redirect: 'manual' so 302 responses surface without being followed, extracting the Location header from the Response while ensuring no secondary request is issued.",
      "max_score": 20
    },
    {
      "name": "Error mode",
      "description": "Sets redirect: 'error' to reject on 3xx redirects and propagates the make-fetch-happen FetchError details (e.g., code ENOREDIRECT/type 'no-redirect') rather than custom redirect handling.",
      "max_score": 20
    },
    {
      "name": "Redirect limit",
      "description": "Maps the spec's maxRedirects to the follow option so make-fetch-happen enforces hop limits, surfacing EMAXREDIRECT when the chain exceeds the limit instead of custom counters.",
      "max_score": 15
    },
    {
      "name": "Method normalization",
      "description": "Relies on make-fetch-happen's redirect semantics that convert POST 303/301/302 to GET with body dropped on redirected requests, avoiding manual resubmission of the original body.",
      "max_score": 15
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-make-fetch-happen

tile.json