{"library":"request-compose","title":"Composable HTTP Client","description":"request-compose is a lightweight, dependency-free HTTP client for Node.js, built around the paradigm of function composition. It empowers developers to construct highly customized HTTP request and response pipelines by chaining together small, single-purpose middleware functions. The library's core philosophy emphasizes zero external dependencies, minimal abstraction, and stateless operation, offering a flexible and performant foundation for various HTTP interaction patterns. Its current stable version is 2.1.7. While a specific release cadence is not explicitly defined, the package appears actively maintained given its npm version and GitHub activity. Key differentiators include its extreme modularity, functional programming approach, and a footprint that includes no external runtime dependencies, contrasting with more opinionated HTTP clients by providing granular control over every step of the request-response lifecycle without imposing a rigid structure.","language":"javascript","status":"active","last_verified":"Tue Apr 21","install":{"commands":["npm install request-compose"],"cli":null},"imports":["import compose from 'request-compose';","import compose from 'request-compose'; const { Request } = compose;","import compose from 'request-compose'; const { Response } = compose;"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import compose from 'request-compose';\n\nconst Request = compose.Request;\nconst Response = compose.Response;\n\n(async () => {\n  try {\n    const { res, body } = await compose(\n      Request.defaults({headers: {'user-agent': 'request-compose'}}),\n      Request.url('https://api.github.com/users/simov'),\n      Request.send(),\n      Response.buffer(),\n      Response.string(),\n      Response.parse()\n    )();\n    console.log(res.statusCode, res.statusMessage);\n    console.log(res.headers['x-ratelimit-remaining']);\n    console.log(body);\n  }\n  catch (err) {\n    console.error(err);\n  }\n})();","lang":"typescript","description":"Demonstrates basic usage of `request-compose` by creating a composed HTTP client, setting default headers, fetching user data from GitHub, and parsing the JSON response. This example leverages the bundled Request and Response middlewares.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}