aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/agent-base/README.md
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/agent-base/README.md
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/agent-base/README.md')
-rw-r--r--vanilla/node_modules/agent-base/README.md69
1 files changed, 69 insertions, 0 deletions
diff --git a/vanilla/node_modules/agent-base/README.md b/vanilla/node_modules/agent-base/README.md
new file mode 100644
index 0000000..b8a86b9
--- /dev/null
+++ b/vanilla/node_modules/agent-base/README.md
@@ -0,0 +1,69 @@
+agent-base
+==========
+### Turn a function into an [`http.Agent`][http.Agent] instance
+
+This module is a thin wrapper around the base `http.Agent` class.
+
+It provides an abstract class that must define a `connect()` function,
+which is responsible for creating the underlying socket that the HTTP
+client requests will use.
+
+The `connect()` function may return an arbitrary `Duplex` stream, or
+another `http.Agent` instance to delegate the request to, and may be
+asynchronous (by defining an `async` function).
+
+Instances of this agent can be used with the `http` and `https`
+modules. To differentiate, the options parameter in the `connect()`
+function includes a `secureEndpoint` property, which can be checked
+to determine what type of socket should be returned.
+
+#### Some subclasses:
+
+Here are some more interesting uses of `agent-base`.
+Send a pull request to list yours!
+
+ * [`http-proxy-agent`][http-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTP endpoints
+ * [`https-proxy-agent`][https-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTPS endpoints
+ * [`pac-proxy-agent`][pac-proxy-agent]: A PAC file proxy `http.Agent` implementation for HTTP and HTTPS
+ * [`socks-proxy-agent`][socks-proxy-agent]: A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS
+
+Example
+-------
+
+Here's a minimal example that creates a new `net.Socket` or `tls.Socket`
+based on the `secureEndpoint` property. This agent can be used with both
+the `http` and `https` modules.
+
+```ts
+import * as net from 'net';
+import * as tls from 'tls';
+import * as http from 'http';
+import { Agent } from 'agent-base';
+
+class MyAgent extends Agent {
+ connect(req, opts) {
+ // `secureEndpoint` is true when using the "https" module
+ if (opts.secureEndpoint) {
+ return tls.connect(opts);
+ } else {
+ return net.connect(opts);
+ }
+ }
+});
+
+// Keep alive enabled means that `connect()` will only be
+// invoked when a new connection needs to be created
+const agent = new MyAgent({ keepAlive: true });
+
+// Pass the `agent` option when creating the HTTP request
+http.get('http://nodejs.org/api/', { agent }, (res) => {
+ console.log('"response" event!', res.headers);
+ res.pipe(process.stdout);
+});
+```
+
+[http-proxy-agent]: ../http-proxy-agent
+[https-proxy-agent]: ../https-proxy-agent
+[pac-proxy-agent]: ../pac-proxy-agent
+[socks-proxy-agent]: ../socks-proxy-agent
+[http.Agent]: https://nodejs.org/api/http.html#http_class_http_agent