@noodleseed/one 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/author-loop.d.ts.map +1 -1
- package/dist/commands/author-loop.js +2 -2
- package/dist/commands/author-loop.js.map +1 -1
- package/dist/commands/catalog-dispatch.d.ts.map +1 -1
- package/dist/commands/catalog-dispatch.js +21 -2
- package/dist/commands/catalog-dispatch.js.map +1 -1
- package/dist/commands/deploy-ops.d.ts.map +1 -1
- package/dist/commands/deploy-ops.js +28 -11
- package/dist/commands/deploy-ops.js.map +1 -1
- package/dist/first-run.d.ts +11 -0
- package/dist/first-run.d.ts.map +1 -1
- package/dist/first-run.js +19 -4
- package/dist/first-run.js.map +1 -1
- package/dist/project-scaffold-templates.d.ts +11 -0
- package/dist/project-scaffold-templates.d.ts.map +1 -0
- package/dist/project-scaffold-templates.js +359 -0
- package/dist/project-scaffold-templates.js.map +1 -0
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +1 -323
- package/dist/project.js.map +1 -1
- package/dist/react.d.ts +2 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +1 -1
- package/dist/react.js.map +1 -1
- package/dist/validate.d.ts +12 -0
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +11 -0
- package/dist/validate.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +6 -9
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +3 -3
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +302 -7
- package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/components.js +39 -7
- package/node_modules/@noodle-borg/authoring/dist/react/components.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts +4 -2
- package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/index.js +2 -1
- package/node_modules/@noodle-borg/authoring/dist/react/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.d.ts +2618 -0
- package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.js +110 -0
- package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/react.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react.js +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/recording.d.ts +1 -1
- package/node_modules/@noodle-borg/authoring/dist/recording.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/recording.js +14 -1
- package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts +25 -2
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +7 -3
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +20 -8
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +2 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +6 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/connector-http/package.json +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.js +8 -0
- package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
- package/node_modules/hono/dist/adapter/aws-lambda/handler.js +15 -21
- package/node_modules/hono/dist/adapter/bun/websocket.js +3 -1
- package/node_modules/hono/dist/adapter/lambda-edge/handler.js +8 -2
- package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +15 -21
- package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +3 -1
- package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +8 -2
- package/node_modules/hono/dist/cjs/helper/css/common.js +3 -1
- package/node_modules/hono/dist/cjs/helper/css/index.js +9 -1
- package/node_modules/hono/dist/cjs/jsx/base.js +8 -14
- package/node_modules/hono/dist/cjs/jsx/components.js +41 -21
- package/node_modules/hono/dist/cjs/jsx/context.js +131 -5
- package/node_modules/hono/dist/cjs/jsx/streaming.js +9 -7
- package/node_modules/hono/dist/cjs/middleware/cors/index.js +2 -5
- package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +2 -2
- package/node_modules/hono/dist/cjs/utils/body.js +12 -4
- package/node_modules/hono/dist/cjs/utils/buffer.js +2 -1
- package/node_modules/hono/dist/cjs/validator/validator.js +3 -3
- package/node_modules/hono/dist/helper/css/common.js +3 -1
- package/node_modules/hono/dist/helper/css/index.js +9 -1
- package/node_modules/hono/dist/jsx/base.js +15 -15
- package/node_modules/hono/dist/jsx/components.js +42 -22
- package/node_modules/hono/dist/jsx/context.js +129 -5
- package/node_modules/hono/dist/jsx/streaming.js +10 -8
- package/node_modules/hono/dist/middleware/cors/index.js +2 -5
- package/node_modules/hono/dist/middleware/serve-static/index.js +2 -2
- package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +1 -1
- package/node_modules/hono/dist/types/jsx/base.d.ts +1 -3
- package/node_modules/hono/dist/types/jsx/context.d.ts +39 -0
- package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +2 -2
- package/node_modules/hono/dist/types/utils/body.d.ts +1 -1
- package/node_modules/hono/dist/utils/body.js +12 -4
- package/node_modules/hono/dist/utils/buffer.js +2 -1
- package/node_modules/hono/dist/validator/validator.js +3 -3
- package/node_modules/hono/package.json +9 -10
- package/node_modules/tailwindcss/dist/chunk-HMCCH6MG.mjs +1 -0
- package/node_modules/tailwindcss/dist/default-theme.mjs +1 -1
- package/node_modules/tailwindcss/dist/lib.js +13 -13
- package/node_modules/tailwindcss/dist/lib.mjs +18 -18
- package/node_modules/tailwindcss/package.json +2 -2
- package/node_modules/undici/README.md +3 -2
- package/node_modules/undici/docs/docs/api/Agent.md +248 -44
- package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
- package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
- package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
- package/node_modules/undici/docs/docs/api/Client.md +365 -178
- package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
- package/node_modules/undici/docs/docs/api/Connector.md +118 -36
- package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
- package/node_modules/undici/docs/docs/api/Cookies.md +125 -47
- package/node_modules/undici/docs/docs/api/Debug.md +34 -18
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
- package/node_modules/undici/docs/docs/api/Dispatcher.md +479 -1093
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +101 -87
- package/node_modules/undici/docs/docs/api/Errors.md +503 -40
- package/node_modules/undici/docs/docs/api/EventSource.md +294 -32
- package/node_modules/undici/docs/docs/api/Fetch.md +680 -31
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -98
- package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
- package/node_modules/undici/docs/docs/api/Interceptors.md +355 -0
- package/node_modules/undici/docs/docs/api/MockAgent.md +314 -322
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
- package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
- package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
- package/node_modules/undici/docs/docs/api/MockPool.md +299 -263
- package/node_modules/undici/docs/docs/api/Pool.md +235 -43
- package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -63
- package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -26
- package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -77
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +264 -542
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +162 -186
- package/node_modules/undici/docs/docs/api/Util.md +68 -11
- package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
- package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +6 -4
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
- package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
- package/node_modules/undici/docs/docs/{GettingStarted.md → getting-started.md} +22 -19
- package/node_modules/undici/docs/docs/index.md +779 -0
- package/node_modules/undici/docs/docs/site.json +125 -0
- package/node_modules/undici/docs/docs/type-map.json +79 -0
- package/node_modules/undici/lib/api/api-request.js +7 -1
- package/node_modules/undici/lib/api/readable.js +47 -2
- package/node_modules/undici/lib/core/errors.js +20 -0
- package/node_modules/undici/lib/core/request.js +1 -1
- package/node_modules/undici/lib/core/util.js +24 -1
- package/node_modules/undici/lib/dispatcher/client-h1.js +92 -1
- package/node_modules/undici/lib/dispatcher/client-h2.js +322 -118
- package/node_modules/undici/lib/dispatcher/client.js +6 -2
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +1 -0
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +42 -7
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +4 -2
- package/node_modules/undici/lib/handler/redirect-handler.js +1 -0
- package/node_modules/undici/lib/handler/retry-handler.js +57 -19
- package/node_modules/undici/lib/util/cache.js +8 -2
- package/node_modules/undici/lib/web/cookies/parse.js +20 -27
- package/node_modules/undici/lib/web/cookies/util.js +1 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +7 -18
- package/node_modules/undici/lib/web/eventsource/util.js +32 -1
- package/node_modules/undici/lib/web/fetch/body.js +43 -0
- package/node_modules/undici/lib/web/fetch/constants.js +1 -1
- package/node_modules/undici/lib/web/fetch/index.js +11 -2
- package/node_modules/undici/lib/web/fetch/request.js +1 -0
- package/node_modules/undici/lib/web/fetch/util.js +4 -1
- package/node_modules/undici/lib/web/websocket/receiver.js +20 -3
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -1
- package/node_modules/undici/lib/web/websocket/websocket.js +3 -1
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/client.d.ts +6 -1
- package/node_modules/undici/types/cookies.d.ts +1 -1
- package/node_modules/undici/types/errors.d.ts +10 -0
- package/node_modules/undici/types/fetch.d.ts +1 -0
- package/node_modules/undici/types/handlers.d.ts +2 -0
- package/node_modules/undici/types/proxy-agent.d.ts +7 -0
- package/package.json +4 -4
- package/react/styles.css +510 -5
- package/react/styles.source.css +850 -0
- package/node_modules/hono/dist/tsconfig.build.tsbuildinfo +0 -1
- package/node_modules/tailwindcss/dist/chunk-XVOTX5KS.mjs +0 -1
|
@@ -1,87 +1,279 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Pool
|
|
2
|
+
|
|
3
|
+
<!--introduced_in=v1.0.0-->
|
|
4
|
+
|
|
5
|
+
<!--type=module-->
|
|
6
|
+
|
|
7
|
+
<!-- source_link=lib/dispatcher/pool.js -->
|
|
8
|
+
|
|
9
|
+
> Stability: 2 - Stable
|
|
10
|
+
|
|
11
|
+
A pool of [`Client`][] instances connected to the same upstream origin. A `Pool`
|
|
12
|
+
spreads requests across several connections to the same host, which allows more
|
|
13
|
+
than one request to be in flight at a time without enabling pipelining on a
|
|
14
|
+
single connection.
|
|
15
|
+
|
|
16
|
+
`Pool` extends [`Dispatcher`][]. Each [`Client`][] in the pool is created lazily
|
|
17
|
+
through a configurable `factory` and shares the same options. Requests are not
|
|
18
|
+
guaranteed to be dispatched in the order in which they are invoked.
|
|
19
|
+
|
|
20
|
+
```mjs
|
|
21
|
+
import { Pool } from 'undici'
|
|
22
|
+
|
|
23
|
+
const pool = new Pool('http://localhost:3000', { connections: 10 })
|
|
24
|
+
const { statusCode, body } = await pool.request({ path: '/', method: 'GET' })
|
|
25
|
+
console.log(statusCode, await body.text())
|
|
26
|
+
await pool.close()
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Class: `Pool`
|
|
30
|
+
|
|
31
|
+
<!-- YAML
|
|
32
|
+
added: v1.0.0
|
|
33
|
+
changes:
|
|
34
|
+
- version: v4.10.4
|
|
35
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
36
|
+
description: Reworked as part of the balanced pool implementation.
|
|
37
|
+
-->
|
|
38
|
+
|
|
39
|
+
* Extends: {Dispatcher}
|
|
40
|
+
|
|
41
|
+
### `new Pool(url[, options])`
|
|
42
|
+
|
|
43
|
+
<!-- YAML
|
|
44
|
+
added: v1.0.0
|
|
45
|
+
-->
|
|
46
|
+
|
|
47
|
+
* `url` {URL|string} The upstream origin. It should only include the protocol,
|
|
48
|
+
hostname, and port.
|
|
49
|
+
* `options` {PoolOptions} (optional) Extends {ClientOptions}, so every
|
|
50
|
+
[`Client`][] option is also accepted and forwarded to each pooled client.
|
|
51
|
+
* `factory` {Function} Creates the [`Client`][] (or other [`Dispatcher`][])
|
|
52
|
+
instances used by the pool.
|
|
53
|
+
**Default:** `(origin, opts) => new Client(origin, opts)`.
|
|
54
|
+
* `origin` {URL} The parsed upstream origin.
|
|
55
|
+
* `opts` {Object} The resolved client options.
|
|
56
|
+
* Returns: {Dispatcher}
|
|
57
|
+
* `connections` {number|null} The maximum number of [`Client`][] instances the
|
|
58
|
+
pool may create. When set to `null` the pool creates an unlimited number of
|
|
59
|
+
clients. **Default:** `null`.
|
|
60
|
+
* `clientTtl` {number|null} The amount of time, in milliseconds, before an idle
|
|
61
|
+
[`Client`][] is removed from the pool and closed. When set to `null` clients
|
|
62
|
+
are never removed based on age. **Default:** `null`.
|
|
63
|
+
|
|
64
|
+
Creates a new `Pool` against `url`. If `connections` is provided it must be a
|
|
65
|
+
finite, non-negative number, otherwise an [`InvalidArgumentError`][] is thrown.
|
|
66
|
+
The `factory` must be a function, and `connect` (inherited from {ClientOptions})
|
|
67
|
+
must be a function or an object when provided.
|
|
68
|
+
|
|
69
|
+
The connection-related {ClientOptions} (`connect`, `connectTimeout`, `tls`,
|
|
70
|
+
`maxCachedSessions`, `socketPath`, `autoSelectFamily`,
|
|
71
|
+
`autoSelectFamilyAttemptTimeout`, `allowH2`, and `useH2c`) are used to build the
|
|
72
|
+
connector shared by every pooled client.
|
|
2
73
|
|
|
3
|
-
|
|
74
|
+
> [!NOTE]
|
|
75
|
+
> `Pool` inherits all {ClientOptions}, including `allowH2` and
|
|
76
|
+
> `maxConcurrentStreams`. With the default unlimited `connections`, the pool
|
|
77
|
+
> opens a new client - and therefore a new TCP/TLS socket - per concurrent
|
|
78
|
+
> dispatch, which defeats HTTP/2 multiplexing over a shared session. To benefit
|
|
79
|
+
> from h2 multiplexing on a single session, cap `connections` (for example
|
|
80
|
+
> `connections: 1`) so that concurrent requests share a session up to
|
|
81
|
+
> `maxConcurrentStreams`.
|
|
4
82
|
|
|
5
|
-
|
|
83
|
+
```mjs
|
|
84
|
+
import { Pool } from 'undici'
|
|
6
85
|
|
|
7
|
-
|
|
86
|
+
const pool = new Pool('http://localhost:3000', {
|
|
87
|
+
connections: 128,
|
|
88
|
+
pipelining: 1
|
|
89
|
+
})
|
|
90
|
+
```
|
|
8
91
|
|
|
9
|
-
|
|
92
|
+
### `pool.closed`
|
|
10
93
|
|
|
11
|
-
|
|
94
|
+
<!-- YAML
|
|
95
|
+
added: v1.0.0
|
|
96
|
+
-->
|
|
12
97
|
|
|
13
|
-
*
|
|
14
|
-
* **options** `PoolOptions` (optional)
|
|
98
|
+
* Type: {boolean}
|
|
15
99
|
|
|
16
|
-
|
|
100
|
+
`true` after [`pool.close()`][] has been called.
|
|
17
101
|
|
|
18
|
-
|
|
102
|
+
### `pool.destroyed`
|
|
19
103
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
104
|
+
<!-- YAML
|
|
105
|
+
added: v1.0.0
|
|
106
|
+
changes:
|
|
107
|
+
- version: v2.0.0
|
|
108
|
+
pr-url: https://github.com/nodejs/undici/pull/384
|
|
109
|
+
description: Reflects the state set by `pool.close()`.
|
|
110
|
+
- version: v4.10.4
|
|
111
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
112
|
+
description: Reworked as part of the balanced pool implementation.
|
|
113
|
+
-->
|
|
23
114
|
|
|
24
|
-
|
|
25
|
-
|
|
115
|
+
* Type: {boolean}
|
|
116
|
+
|
|
117
|
+
`true` after [`pool.destroy()`][] has been called, or after [`pool.close()`][]
|
|
118
|
+
has been called and the pool shutdown has completed.
|
|
119
|
+
|
|
120
|
+
### `pool.stats`
|
|
121
|
+
|
|
122
|
+
<!-- YAML
|
|
123
|
+
added: v1.0.0
|
|
124
|
+
-->
|
|
125
|
+
|
|
126
|
+
* Type: {PoolStats}
|
|
26
127
|
|
|
27
|
-
|
|
128
|
+
Aggregate statistics for the pool. See [`PoolStats`][].
|
|
28
129
|
|
|
29
|
-
### `
|
|
130
|
+
### `pool.close([callback])`
|
|
30
131
|
|
|
31
|
-
|
|
132
|
+
<!-- YAML
|
|
133
|
+
added: v1.0.0
|
|
134
|
+
-->
|
|
32
135
|
|
|
33
|
-
|
|
136
|
+
Implements [`dispatcher.close([callback])`][]. Gracefully closes the pool and
|
|
137
|
+
all of its clients, waiting for in-flight requests to complete. Resolves once
|
|
138
|
+
every pooled client has closed.
|
|
34
139
|
|
|
35
|
-
|
|
140
|
+
### `pool.destroy([error[, callback]])`
|
|
36
141
|
|
|
37
|
-
|
|
142
|
+
<!-- YAML
|
|
143
|
+
added: v1.0.0
|
|
144
|
+
-->
|
|
38
145
|
|
|
39
|
-
|
|
146
|
+
Implements [`dispatcher.destroy([error[, callback]])`][]. Forcefully destroys
|
|
147
|
+
the pool and all of its clients, aborting any in-flight requests with `error`.
|
|
40
148
|
|
|
41
|
-
|
|
149
|
+
### `pool.connect(options[, callback])`
|
|
42
150
|
|
|
43
|
-
|
|
151
|
+
<!-- YAML
|
|
152
|
+
added: v1.0.0
|
|
153
|
+
-->
|
|
44
154
|
|
|
45
|
-
|
|
155
|
+
See [`dispatcher.connect(options[, callback])`][]. Performs an HTTP `CONNECT`
|
|
156
|
+
request through one of the pooled clients.
|
|
46
157
|
|
|
47
|
-
### `
|
|
158
|
+
### `pool.dispatch(options, handler)`
|
|
48
159
|
|
|
49
|
-
|
|
160
|
+
<!-- YAML
|
|
161
|
+
added: v1.3.0
|
|
162
|
+
changes:
|
|
163
|
+
- version: v4.10.4
|
|
164
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
165
|
+
description: Reworked as part of the balanced pool implementation.
|
|
166
|
+
-->
|
|
50
167
|
|
|
51
|
-
|
|
168
|
+
Implements [`dispatcher.dispatch(options, handler)`][]. Selects an available
|
|
169
|
+
client - creating a new one through `factory` when none is free and the
|
|
170
|
+
`connections` limit has not been reached - and dispatches the request to it.
|
|
52
171
|
|
|
53
|
-
|
|
172
|
+
### `pool.pipeline(options, handler)`
|
|
54
173
|
|
|
55
|
-
|
|
174
|
+
<!-- YAML
|
|
175
|
+
added: v1.0.0
|
|
176
|
+
-->
|
|
56
177
|
|
|
57
|
-
|
|
178
|
+
See [`dispatcher.pipeline(options, handler)`][]. Sends a request and returns a
|
|
179
|
+
{Duplex} stream that pipes the request body to the response body through
|
|
180
|
+
`handler`.
|
|
58
181
|
|
|
59
|
-
### `
|
|
182
|
+
### `pool.request(options[, callback])`
|
|
60
183
|
|
|
61
|
-
|
|
184
|
+
<!-- YAML
|
|
185
|
+
added: v1.0.0
|
|
186
|
+
-->
|
|
62
187
|
|
|
63
|
-
|
|
188
|
+
See [`dispatcher.request(options[, callback])`][]. Performs a request through one
|
|
189
|
+
of the pooled clients.
|
|
64
190
|
|
|
65
|
-
|
|
191
|
+
```mjs
|
|
192
|
+
import { Pool } from 'undici'
|
|
66
193
|
|
|
67
|
-
|
|
194
|
+
const pool = new Pool('http://localhost:3000', { connections: 10 })
|
|
195
|
+
const { statusCode, headers, body } = await pool.request({
|
|
196
|
+
path: '/',
|
|
197
|
+
method: 'GET'
|
|
198
|
+
})
|
|
199
|
+
console.log(statusCode, headers)
|
|
200
|
+
console.log(await body.text())
|
|
201
|
+
await pool.close()
|
|
202
|
+
```
|
|
68
203
|
|
|
69
|
-
|
|
204
|
+
### `pool.stream(options, factory[, callback])`
|
|
70
205
|
|
|
71
|
-
|
|
206
|
+
<!-- YAML
|
|
207
|
+
added: v1.0.0
|
|
208
|
+
-->
|
|
72
209
|
|
|
73
|
-
See [`
|
|
210
|
+
See [`dispatcher.stream(options, factory[, callback])`][]. Performs a request and
|
|
211
|
+
writes the response body into the {Writable} stream returned by `factory`.
|
|
74
212
|
|
|
75
|
-
|
|
213
|
+
### `pool.upgrade(options[, callback])`
|
|
214
|
+
|
|
215
|
+
<!-- YAML
|
|
216
|
+
added: v1.0.0
|
|
217
|
+
-->
|
|
218
|
+
|
|
219
|
+
See [`dispatcher.upgrade(options[, callback])`][]. Upgrades a connection
|
|
220
|
+
(for example to a WebSocket) through one of the pooled clients.
|
|
76
221
|
|
|
77
222
|
### Event: `'connect'`
|
|
78
223
|
|
|
79
|
-
|
|
224
|
+
<!-- YAML
|
|
225
|
+
added: v1.0.0
|
|
226
|
+
-->
|
|
227
|
+
|
|
228
|
+
* `origin` {URL}
|
|
229
|
+
* `targets` {Array} The pool followed by the client that connected,
|
|
230
|
+
`[pool, ...targets]`.
|
|
231
|
+
|
|
232
|
+
Emitted by a pooled client when a socket has connected. See
|
|
233
|
+
[`Dispatcher` Event: `'connect'`][]. When `clientTtl` is set, the connecting
|
|
234
|
+
client's time-to-live timer starts on this event.
|
|
80
235
|
|
|
81
236
|
### Event: `'disconnect'`
|
|
82
237
|
|
|
83
|
-
|
|
238
|
+
<!-- YAML
|
|
239
|
+
added: v1.0.0
|
|
240
|
+
-->
|
|
241
|
+
|
|
242
|
+
* `origin` {URL}
|
|
243
|
+
* `targets` {Array} The pool followed by the client that disconnected,
|
|
244
|
+
`[pool, ...targets]`.
|
|
245
|
+
* `error` {Error}
|
|
246
|
+
|
|
247
|
+
Emitted by a pooled client when a socket has disconnected. See
|
|
248
|
+
[`Dispatcher` Event: `'disconnect'`][].
|
|
84
249
|
|
|
85
250
|
### Event: `'drain'`
|
|
86
251
|
|
|
87
|
-
|
|
252
|
+
<!-- YAML
|
|
253
|
+
added: v1.0.0
|
|
254
|
+
-->
|
|
255
|
+
|
|
256
|
+
* `origin` {URL}
|
|
257
|
+
* `targets` {Array} The pool followed by the client that drained,
|
|
258
|
+
`[pool, ...targets]`.
|
|
259
|
+
|
|
260
|
+
Emitted when a pooled client is no longer busy and can accept more requests. See
|
|
261
|
+
[`Dispatcher` Event: `'drain'`][].
|
|
262
|
+
|
|
263
|
+
[`Client`]: Client.md#class-client
|
|
264
|
+
[`Dispatcher` Event: `'connect'`]: Dispatcher.md#event-connect
|
|
265
|
+
[`Dispatcher` Event: `'disconnect'`]: Dispatcher.md#event-disconnect
|
|
266
|
+
[`Dispatcher` Event: `'drain'`]: Dispatcher.md#event-drain
|
|
267
|
+
[`Dispatcher`]: Dispatcher.md#class-dispatcher
|
|
268
|
+
[`InvalidArgumentError`]: Errors.md#class-invalidargumenterror
|
|
269
|
+
[`PoolStats`]: PoolStats.md
|
|
270
|
+
[`dispatcher.close([callback])`]: Dispatcher.md#dispatcherclosecallback
|
|
271
|
+
[`dispatcher.connect(options[, callback])`]: Dispatcher.md#dispatcherconnectoptions-callback
|
|
272
|
+
[`dispatcher.destroy([error[, callback]])`]: Dispatcher.md#dispatcherdestroyerror-callback
|
|
273
|
+
[`dispatcher.dispatch(options, handler)`]: Dispatcher.md#dispatcherdispatchoptions-handler
|
|
274
|
+
[`dispatcher.pipeline(options, handler)`]: Dispatcher.md#dispatcherpipelineoptions-handler
|
|
275
|
+
[`dispatcher.request(options[, callback])`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
276
|
+
[`dispatcher.stream(options, factory[, callback])`]: Dispatcher.md#dispatcherstreamoptions-factory-callback
|
|
277
|
+
[`dispatcher.upgrade(options[, callback])`]: Dispatcher.md#dispatcherupgradeoptions-callback
|
|
278
|
+
[`pool.close()`]: #poolclosecallback
|
|
279
|
+
[`pool.destroy()`]: #pooldestroyerror-callback
|
|
@@ -1,35 +1,141 @@
|
|
|
1
|
-
#
|
|
1
|
+
# PoolStats
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!--introduced_in=v4.15.0-->
|
|
4
|
+
<!--type=module-->
|
|
5
|
+
<!-- source_link=lib/util/stats.js -->
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
> Stability: 2 - Stable
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
`PoolStats` exposes a read-only snapshot of the aggregate connection and request
|
|
10
|
+
counters for a [`Pool`][] or [`BalancedPool`][]. An instance is created lazily
|
|
11
|
+
each time the `pool.stats` getter is accessed, so the values reflect the state of
|
|
12
|
+
the pool at the moment of access.
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
`PoolStats` is not constructed directly in normal use; obtain an instance from
|
|
15
|
+
the `stats` property of a pool:
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
```mjs
|
|
18
|
+
import { Pool } from 'undici'
|
|
12
19
|
|
|
13
|
-
|
|
20
|
+
const pool = new Pool('http://localhost:3000')
|
|
21
|
+
const { stats } = pool
|
|
22
|
+
|
|
23
|
+
console.log(stats.connected, stats.running, stats.size)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Class: `PoolStats`
|
|
27
|
+
|
|
28
|
+
<!-- YAML
|
|
29
|
+
added: v4.15.0
|
|
30
|
+
changes:
|
|
31
|
+
- version: v7.9.0
|
|
32
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
33
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
34
|
+
-->
|
|
35
|
+
|
|
36
|
+
Each property is a plain number computed from the pool's internal state when the
|
|
37
|
+
instance is created. The instance is a snapshot; read `pool.stats` again to
|
|
38
|
+
observe later changes.
|
|
39
|
+
|
|
40
|
+
### `new PoolStats(pool)`
|
|
41
|
+
|
|
42
|
+
<!-- YAML
|
|
43
|
+
added: v4.15.0
|
|
44
|
+
changes:
|
|
45
|
+
- version: v7.9.0
|
|
46
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
47
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
48
|
+
-->
|
|
49
|
+
|
|
50
|
+
* `pool` {Pool|BalancedPool} The pool to read counters from.
|
|
51
|
+
|
|
52
|
+
Creates a new `PoolStats` instance from the current state of `pool`. Prefer the
|
|
53
|
+
`pool.stats` getter, which returns a fresh `PoolStats` on each access.
|
|
54
|
+
|
|
55
|
+
### `poolStats.connected`
|
|
56
|
+
|
|
57
|
+
<!-- YAML
|
|
58
|
+
added: v4.15.0
|
|
59
|
+
changes:
|
|
60
|
+
- version: v7.9.0
|
|
61
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
62
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
63
|
+
-->
|
|
64
|
+
|
|
65
|
+
* Type: {number}
|
|
14
66
|
|
|
15
67
|
Number of open socket connections in this pool.
|
|
16
68
|
|
|
17
|
-
### `
|
|
69
|
+
### `poolStats.free`
|
|
18
70
|
|
|
19
|
-
|
|
71
|
+
<!-- YAML
|
|
72
|
+
added: v4.15.0
|
|
73
|
+
changes:
|
|
74
|
+
- version: v7.9.0
|
|
75
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
76
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
77
|
+
-->
|
|
20
78
|
|
|
21
|
-
|
|
79
|
+
* Type: {number}
|
|
80
|
+
|
|
81
|
+
Number of open socket connections in this pool that do not have an active
|
|
82
|
+
request.
|
|
83
|
+
|
|
84
|
+
### `poolStats.pending`
|
|
85
|
+
|
|
86
|
+
<!-- YAML
|
|
87
|
+
added: v4.15.0
|
|
88
|
+
changes:
|
|
89
|
+
- version: v7.9.0
|
|
90
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
91
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
92
|
+
-->
|
|
93
|
+
|
|
94
|
+
* Type: {number}
|
|
22
95
|
|
|
23
96
|
Number of pending requests across all clients in this pool.
|
|
24
97
|
|
|
25
|
-
### `
|
|
98
|
+
### `poolStats.queued`
|
|
99
|
+
|
|
100
|
+
<!-- YAML
|
|
101
|
+
added: v4.15.0
|
|
102
|
+
changes:
|
|
103
|
+
- version: v7.9.0
|
|
104
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
105
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
106
|
+
-->
|
|
107
|
+
|
|
108
|
+
* Type: {number}
|
|
26
109
|
|
|
27
110
|
Number of queued requests across all clients in this pool.
|
|
28
111
|
|
|
29
|
-
### `
|
|
112
|
+
### `poolStats.running`
|
|
113
|
+
|
|
114
|
+
<!-- YAML
|
|
115
|
+
added: v4.15.0
|
|
116
|
+
changes:
|
|
117
|
+
- version: v7.9.0
|
|
118
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
119
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
120
|
+
-->
|
|
121
|
+
|
|
122
|
+
* Type: {number}
|
|
30
123
|
|
|
31
124
|
Number of currently active requests across all clients in this pool.
|
|
32
125
|
|
|
33
|
-
### `
|
|
126
|
+
### `poolStats.size`
|
|
127
|
+
|
|
128
|
+
<!-- YAML
|
|
129
|
+
added: v4.15.0
|
|
130
|
+
changes:
|
|
131
|
+
- version: v7.9.0
|
|
132
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
133
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
134
|
+
-->
|
|
135
|
+
|
|
136
|
+
* Type: {number}
|
|
34
137
|
|
|
35
138
|
Number of active, pending, or queued requests across all clients in this pool.
|
|
139
|
+
|
|
140
|
+
[`BalancedPool`]: BalancedPool.md#class-balancedpool
|
|
141
|
+
[`Pool`]: Pool.md#class-pool
|