{"library":"popsicle-redirects","title":"Popsicle HTTP Redirects Middleware","description":"Popsicle Redirects is a middleware package for the Popsicle HTTP client library, designed to automatically follow HTTP redirects (e.g., 301, 302, 307, 308). It abstracts away the complexity of handling redirect chains, allowing developers to configure the maximum number of redirects and define custom confirmation logic for non-idempotent redirects (307/308). The current stable version is 1.1.1. The project appears to follow an as-needed release cadence for bug fixes and minor improvements, typically tied to the `servie` ecosystem. Its primary differentiator is its integration into the `popsicle` middleware pattern, providing a specific solution for redirect handling within that client.","language":"javascript","status":"active","last_verified":"Wed Apr 22","install":{"commands":["npm install popsicle-redirects"],"cli":null},"imports":["import { redirects } from 'popsicle-redirects';","import { redirects } from 'popsicle-redirects';","import { redirects } from 'popsicle-redirects';\nimport { transport } from 'popsicle';\n\nconst redirectMiddleware = redirects(transport());\n// Add redirectMiddleware to your Popsicle request chain"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { request } from 'popsicle';\nimport { redirects } from 'popsicle-redirects';\nimport { transport } from 'popsicle';\n\nasync function fetchDataWithRedirects() {\n  const httpClient = request\n    .use(redirects(transport())) // Integrate the redirects middleware\n    .use(async (request, next) => {\n      // Example of custom middleware or error handling\n      try {\n        const response = await next(request);\n        if (!response.ok) {\n          console.error(`HTTP Error: ${response.status} ${response.statusText}`);\n        }\n        return response;\n      } catch (error) {\n        console.error('Request failed:', error.message);\n        throw error;\n      }\n    });\n\n  try {\n    const response = await httpClient.get('http://example.com/redirect-to-target');\n    const data = await response.text();\n    console.log('Response data:', data);\n  } catch (error) {\n    console.error('Failed to fetch:', error.message);\n  }\n}\n\nfetchDataWithRedirects();","lang":"typescript","description":"This quickstart demonstrates how to integrate `popsicle-redirects` into a `popsicle` client to automatically follow HTTP redirects, including basic error handling.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}