back to home

forwardemail / superagent

Ajax for Node.js and browsers (JS HTTP client). Maintained for @forwardemail, @ladjs, @spamscanner, @breejs, @cabinjs, and @lassjs.

16,644 stars
1,328 forks
181 issues
JavaScriptHTMLMakefile

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing forwardemail/superagent in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/forwardemail/superagent)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

superagent > Small progressive client-side HTTP request library, and Node.js module with the same API, supporting many high-level HTTP client features. Maintained for Forward Email and Lad. Table of Contents • Install • Usage • Node • Browser • Supported Platforms • Required Browser Features • Plugins • Upgrading from previous versions • Contributors • License Install [npm][]: [yarn][]: Usage Node Browser **The browser-ready, minified version of is only 50 KB (minified and gzipped).** Browser-ready versions of this module are available via [jsdelivr][], [unpkg][], and also in the folder in downloads of the package. > Note that we also provide unminified versions with instead of file extensions. VanillaJS This is the solution for you if you're just using tags everywhere! Bundler If you are using [browserify][], [webpack][], [rollup][], or another bundler, then you can follow the same usage as Node above. Supported Platforms • Node: v14.18.0+ • Browsers (see .browserslistrc): Required Browser Features We recommend using (specifically with the bundle mentioned in VanillaJS above): • WeakRef is not supported in Opera 85, iOS Safari 12.2-12.5 • BigInt is not supported in iOS Safari 12.2-12.5 Plugins SuperAgent is easily extended via plugins. Existing plugins: • superagent-no-cache - prevents caching by including Cache-Control header • superagent-prefix - prefixes absolute URLs (useful in test environment) • superagent-suffix - suffix URLs with a given path • superagent-mock - simulate HTTP calls by returning data fixtures based on the requested URL • superagent-mocker — simulate REST API • superagent-cache - A global SuperAgent patch with built-in, flexible caching • superagent-cache-plugin - A SuperAgent plugin with built-in, flexible caching • superagent-jsonapify - A lightweight json-api client addon for superagent • superagent-serializer - Converts server payload into different cases • superagent-httpbackend - stub out requests using AngularJS' $httpBackend syntax • superagent-throttle - queues and intelligently throttles requests • superagent-charset - add charset support for node's SuperAgent • superagent-verbose-errors - include response body in error messages for failed requests • superagent-declare - A simple declarative API for SuperAgent • superagent-node-http-timings - measure http timings in node.js • superagent-cheerio - add cheerio to your response content automatically. Adds for HTML and XML response bodies. • @certible/superagent-aws-sign - Sign AWS endpoint requests, it uses the aws4 to authenticate the SuperAgent requests Please prefix your plugin with so that it can easily be found by others. For SuperAgent extensions such as couchdb and oauth visit the wiki. Upgrading from previous versions Please see GitHub releases page for the current changelog. Our breaking changes are mostly in rarely used functionality and from stricter error handling. • 6.0 to 6.1 • Browser behaviour changed to match Node when serializing , using semantics of library. (See: ) • 5.x to 6.x: • Retry behavior is still opt-in, however we now have a more fine-grained list of status codes and error codes that we retry against (see updated docs) • A specific issue with Content-Type matching not being case-insensitive is fixed • Set is now required for IE 9, see Required Browser Features for more insight • 4.x to 5.x: • We've implemented the build setup of Lass to simplify our stack and linting • Unminified browserified build size has been reduced from 48KB to 20KB (via and the latest version of Babel using and ) • Linting support has been added using and • We can now target what versions of Node we wish to support more easily using • 3.x to 4.x: • Ensure you're running Node 6 or later. We've dropped support for Node 4. • We've started using ES6 and for compatibility with Internet Explorer you may need to use Babel. • We suggest migrating from callbacks to or . • 2.x to 3.x: • Ensure you're running Node 4 or later. We've dropped support for Node 0.x. • Test code that calls multiple times. Invalid calls to will now throw instead of sending garbage. • 1.x to 2.x: • If you use in the *browser* version, rename it to . • If you rely on in query-string values being sent literally as the text "undefined", switch to checking for missing value instead. is now (without a value). • If you use in Internet Explorer, ensure that you have a polyfill that adds a global object. • 0.x to 1.x: • Instead of 1-argument callback use . Contributors | Name | | ------------------- | | **Kornel Lesiński** | | **Peter Lyons** | | **Hunter Loftis** | | **Nick Baugh** | License MIT © TJ Holowaychuk [npm]: https://www.npmjs.com/ [yarn]: https://yarnpkg.com/ [jsdelivr]: https://www.jsdelivr.com/ [unpkg]: https://unpkg.com/ [browserify]: https://github.com/browserify/browserify [webpack]: https://github.com/webpack/webpack [rollup]: https://github.com/rollup/rollup