@openclaw/slack 2026.9.6 → 2026.9.7
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/assets/icon.png +0 -0
- package/dist/.setup/{account-inspect-DP1Bcwj4.mjs → account-inspect-DWBXpER6.mjs} +1 -1
- package/dist/.setup/{accounts-BBHvg0pY.mjs → accounts-D_N9IqNA.mjs} +23 -1
- package/dist/.setup/{action-runtime-B01d85zt.mjs → action-runtime-DfWvuiZd.mjs} +26 -41
- package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
- package/dist/.setup/{actions-DKCtBgCI.mjs → actions-Df0CzcDl.mjs} +88 -175
- package/dist/.setup/{approval-handler.runtime-DMszKn_7.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
- package/dist/.setup/{approval-message-updates-Tb_qRokK.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
- package/dist/.setup/{channel-CErYZ5zw.mjs → channel-C7bgPSTE.mjs} +181 -273
- package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
- package/dist/.setup/{channel-type-Dxk8VJUb.mjs → channel-type-ClOttrZ5.mjs} +13 -21
- package/dist/.setup/{channel.setup-BVoUtdPn.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
- package/dist/.setup/{config-schema-CyL279e7.mjs → config-schema-BZCxmHKG.mjs} +24 -21
- package/dist/.setup/{directory-config-CQTSH45W.mjs → directory-config-BOUWH3hR.mjs} +7 -10
- package/dist/.setup/{directory-live-BCcj89QV.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
- package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
- package/dist/.setup/{message-tool-api-C0PTFaNV.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
- package/dist/.setup/{provider-C-jPaGt2.mjs → monitor-BPVfkumU.mjs} +2181 -2693
- package/dist/.setup/{outbound-adapter-A7Wdn8ZT.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
- package/dist/.setup/{pipeline.runtime-BlPOexmJ.mjs → pipeline.runtime-B1H63Frf.mjs} +311 -457
- package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
- package/dist/.setup/{policy-BApW53pI.mjs → policy-D-jfM174.mjs} +5 -5
- package/dist/.setup/{probe-DiYIMPJo.mjs → probe-B2Y9qc_z.mjs} +101 -39
- package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
- package/dist/.setup/{relay-source-DfOnjJTE.mjs → relay-source-BpKdjsll.mjs} +10 -12
- package/dist/.setup/{replies-BBAJxUOQ.mjs → replies-BAnUtr2f.mjs} +16 -76
- package/dist/.setup/{reply-blocks-Bm8kf6mK.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
- package/dist/.setup/{resolve-channels-BXbMBbJD.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
- package/dist/.setup/{resolve-users-65WqvIqD.mjs → resolve-users-DW0ngD03.mjs} +20 -22
- package/dist/.setup/{scopes-h3YB-mMs.mjs → scopes-CasuDvaa.mjs} +6 -17
- package/dist/.setup/{secret-contract-DxmvbxBF.mjs → secret-contract-BaZcu6P_.mjs} +15 -20
- package/dist/.setup/{secret-contract-api-D9UfYujm.mjs → secret-contract-api-Dp6290Vg.mjs} +1 -1
- package/dist/.setup/{security-audit-BypHqcq5.mjs → security-audit-BqDc-6VL.mjs} +1 -1
- package/dist/.setup/{send-Cp6omkOg.mjs → send-BOVLQi3n.mjs} +84 -171
- package/dist/.setup/{session-status-Cf7AvWOt.mjs → session-status-DscajIsd.mjs} +315 -238
- package/dist/.setup/{setup-plugin-api-dLPkL06L.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
- package/dist/.setup/{setup-surface-D3DLcCxu.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
- package/dist/.setup/{shared-CJ3arAFL.mjs → shared-qau-uDGl.mjs} +30 -56
- package/dist/.setup/{slash-dispatch.runtime-HFy_XvyO.mjs → slash-dispatch.runtime--AEzLVBF.mjs} +1 -1
- package/dist/.setup/{streaming-compat-B-e0mqM0.mjs → streaming-compat-C5Wut626.mjs} +31 -8
- package/dist/.setup/{target-parsing-DEsPjngB.mjs → target-parsing-FFE26kOV.mjs} +1 -7
- package/dist/.setup/{targets-Cku2KCvg.mjs → targets-C6LZQL1Q.mjs} +1 -1
- package/dist/.setup/{thread-ts-CukseRVL.mjs → thread-ts-Cvt7WD6B.mjs} +0 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/api.js +18 -17
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/http-routes-api.js +1 -1
- package/dist/index.js +1 -1
- package/dist/message-tool-api.js +1 -1
- package/dist/runtime-api.js +11 -12
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/setup-entry.js +2 -2
- package/dist/setup-plugin-api.js +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +20 -8
- package/node_modules/@slack/bolt/node_modules/@types/node/ffi.d.ts +14 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +3 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/net.d.ts +16 -4
- package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +1 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +39 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +9 -12
- package/node_modules/@slack/bolt/node_modules/@types/node/test/reporters.d.ts +1 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +72 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/tls.d.ts +14 -10
- package/node_modules/@slack/bolt/node_modules/@types/node/vm.d.ts +2 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
- package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
- package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
- package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
- package/node_modules/get-east-asian-width/index.js +8 -3
- package/node_modules/get-east-asian-width/lookup-data.js +1 -1
- package/node_modules/get-east-asian-width/lookup.js +4 -4
- package/node_modules/get-east-asian-width/package.json +1 -1
- package/node_modules/typebox/build/compile/code.mjs +1 -2
- package/node_modules/typebox/build/compile/validator.mjs +5 -1
- package/node_modules/typebox/build/format/iri.mjs +16 -9
- package/node_modules/typebox/build/guard/emit.mjs +2 -2
- package/node_modules/typebox/build/guard/guard.d.mts +7 -5
- package/node_modules/typebox/build/guard/guard.mjs +14 -9
- package/node_modules/typebox/build/guard/index.mjs +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
- package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
- package/node_modules/typebox/build/schema/build.mjs +2 -3
- package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
- package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
- package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
- package/node_modules/typebox/build/schema/parse.mjs +3 -0
- package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
- package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
- package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
- package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
- package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
- package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
- package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
- package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
- package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
- package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +3 -1
- package/node_modules/undici/README.md +81 -25
- package/node_modules/undici/docs/docs/api/Agent.md +249 -42
- 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 +407 -162
- package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
- package/node_modules/undici/docs/docs/api/Connector.md +118 -35
- package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
- package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
- 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 +490 -1055
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
- package/node_modules/undici/docs/docs/api/Errors.md +503 -28
- package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
- package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
- package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
- package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
- package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
- 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 +321 -258
- package/node_modules/undici/docs/docs/api/Pool.md +236 -41
- 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 -55
- package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
- package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
- 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 +233 -0
- 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/getting-started.md +281 -0
- package/node_modules/undici/docs/docs/index.md +784 -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/index.js +4 -2
- package/node_modules/undici/lib/api/api-connect.js +13 -11
- package/node_modules/undici/lib/api/api-pipeline.js +26 -13
- package/node_modules/undici/lib/api/api-request.js +51 -21
- package/node_modules/undici/lib/api/api-stream.js +81 -20
- package/node_modules/undici/lib/api/api-upgrade.js +21 -11
- package/node_modules/undici/lib/api/readable.js +45 -9
- package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
- package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
- package/node_modules/undici/lib/core/connect.js +46 -7
- package/node_modules/undici/lib/core/constants.js +1 -24
- package/node_modules/undici/lib/core/errors.js +22 -2
- package/node_modules/undici/lib/core/request.js +100 -18
- package/node_modules/undici/lib/core/symbols.js +4 -0
- package/node_modules/undici/lib/core/util.js +105 -48
- package/node_modules/undici/lib/dispatcher/agent.js +51 -32
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
- package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
- package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
- package/node_modules/undici/lib/dispatcher/client.js +109 -36
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
- package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
- package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
- package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
- package/node_modules/undici/lib/dispatcher/pool.js +30 -5
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
- package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
- package/node_modules/undici/lib/global.js +37 -14
- package/node_modules/undici/lib/handler/cache-handler.js +49 -7
- package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
- package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
- package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
- package/node_modules/undici/lib/handler/retry-handler.js +191 -50
- package/node_modules/undici/lib/interceptor/cache.js +75 -25
- package/node_modules/undici/lib/interceptor/decompress.js +5 -2
- package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/undici/lib/interceptor/dns.js +12 -1
- package/node_modules/undici/lib/interceptor/redirect.js +3 -3
- package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
- package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
- package/node_modules/undici/lib/mock/mock-agent.js +21 -9
- package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
- package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/node_modules/undici/lib/mock/mock-utils.js +281 -47
- package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
- package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
- package/node_modules/undici/lib/util/cache.js +92 -10
- package/node_modules/undici/lib/util/runtime-features.js +3 -34
- package/node_modules/undici/lib/web/cache/cache.js +6 -8
- package/node_modules/undici/lib/web/cookies/parse.js +150 -146
- package/node_modules/undici/lib/web/cookies/util.js +1 -1
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
- package/node_modules/undici/lib/web/eventsource/util.js +32 -1
- package/node_modules/undici/lib/web/fetch/body.js +48 -10
- package/node_modules/undici/lib/web/fetch/constants.js +1 -1
- package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
- package/node_modules/undici/lib/web/fetch/index.js +242 -223
- package/node_modules/undici/lib/web/fetch/request.js +35 -6
- package/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/node_modules/undici/lib/web/fetch/util.js +10 -2
- package/node_modules/undici/lib/web/webidl/index.js +5 -7
- package/node_modules/undici/lib/web/websocket/frame.js +1 -7
- package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
- package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
- package/node_modules/undici/package.json +10 -10
- package/node_modules/undici/types/agent.d.ts +0 -2
- package/node_modules/undici/types/client.d.ts +69 -24
- package/node_modules/undici/types/connector.d.ts +1 -0
- package/node_modules/undici/types/cookies.d.ts +1 -1
- package/node_modules/undici/types/dispatcher.d.ts +8 -30
- package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
- package/node_modules/undici/types/errors.d.ts +10 -0
- package/node_modules/undici/types/fetch.d.ts +5 -1
- package/node_modules/undici/types/formdata.d.ts +0 -6
- package/node_modules/undici/types/h2c-client.d.ts +6 -6
- package/node_modules/undici/types/handlers.d.ts +2 -0
- package/node_modules/undici/types/header.d.ts +5 -0
- package/node_modules/undici/types/index.d.ts +3 -1
- package/node_modules/undici/types/interceptors.d.ts +1 -1
- package/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici/types/pool.d.ts +0 -2
- package/node_modules/undici/types/proxy-agent.d.ts +9 -2
- package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
- package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
- package/node_modules/undici/types/webidl.d.ts +0 -1
- package/openclaw.plugin.json +31 -3
- package/package.json +7 -7
- package/dist/.setup/accounts.runtime-DN-PPocC.mjs +0 -2
- package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +0 -2
- package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
- package/dist/.setup/monitor-_Sht7Dqy.mjs +0 -13
- package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
- package/dist/.setup/send.runtime-B4caZU6T.mjs +0 -2
- package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
- package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
- package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
- package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
- package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/undici/lib/util/promise.js +0 -28
- /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
|
@@ -1,84 +1,291 @@
|
|
|
1
1
|
# Agent
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!--introduced_in=v3.2.0-->
|
|
4
|
+
<!--type=module-->
|
|
5
|
+
<!-- source_link=lib/dispatcher/agent.js -->
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
> Stability: 2 - Stable
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
An `Agent` dispatches requests against multiple different origins, creating and
|
|
10
|
+
reusing a per-origin [`Pool`][] (or [`Client`][]) on demand. It is the default
|
|
11
|
+
dispatcher used by [`request`][], [`stream`][], and [`fetch`][] when no explicit
|
|
12
|
+
dispatcher is supplied.
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
Requests are not guaranteed to be dispatched in their order of invocation.
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
```mjs
|
|
17
|
+
import { Agent, setGlobalDispatcher } from 'undici'
|
|
12
18
|
|
|
13
|
-
|
|
19
|
+
const agent = new Agent({ connections: 10 })
|
|
20
|
+
setGlobalDispatcher(agent)
|
|
21
|
+
```
|
|
14
22
|
|
|
15
|
-
|
|
23
|
+
## Class: `Agent`
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
<!-- YAML
|
|
26
|
+
added: v3.2.0
|
|
27
|
+
-->
|
|
18
28
|
|
|
19
|
-
Extends:
|
|
29
|
+
* Extends: {Dispatcher}
|
|
20
30
|
|
|
21
|
-
|
|
22
|
-
|
|
31
|
+
`Agent` keeps an internal map of origins to dispatchers. The first request to a
|
|
32
|
+
given origin lazily creates a dispatcher through the configured `factory`, and
|
|
33
|
+
subsequent requests to the same origin reuse it. Idle dispatchers are closed
|
|
34
|
+
automatically once they have no open connections and are no longer busy.
|
|
23
35
|
|
|
24
|
-
|
|
36
|
+
### `new Agent([options])`
|
|
25
37
|
|
|
26
|
-
|
|
38
|
+
<!-- YAML
|
|
39
|
+
added: v3.2.0
|
|
40
|
+
changes:
|
|
41
|
+
- version: v7.16.0
|
|
42
|
+
pr-url: https://github.com/nodejs/undici/pull/4365
|
|
43
|
+
description: Added the `maxOrigins` option to cap the number of origins.
|
|
44
|
+
-->
|
|
27
45
|
|
|
28
|
-
|
|
46
|
+
* `options` {AgentOptions} (optional) Extends {PoolOptions}.
|
|
47
|
+
* `factory` {Function} Builds the dispatcher used for a given origin. When the
|
|
48
|
+
resolved options contain `connections: 1`, the default factory creates a
|
|
49
|
+
{Client}; otherwise it creates a {Pool}. **Default:** `(origin, opts) => new Pool(origin, opts)`.
|
|
50
|
+
* `origin` {URL|string} The origin to create a dispatcher for.
|
|
51
|
+
* `opts` {Object} The resolved options for the new dispatcher.
|
|
52
|
+
* Returns: {Dispatcher}
|
|
53
|
+
* `maxOrigins` {number} Limits the total number of distinct origins that may
|
|
54
|
+
receive requests at the same time. A {MaxOriginsReachedError} is thrown when
|
|
55
|
+
a request targets a new origin once the limit is reached. When set to
|
|
56
|
+
`Infinity`, no limit is enforced. Must be a number greater than `0`.
|
|
57
|
+
**Default:** `Infinity`.
|
|
29
58
|
|
|
30
|
-
|
|
59
|
+
`Agent` inherits all {PoolOptions} (and therefore all {ClientOptions}). The
|
|
60
|
+
per-origin {Pool} it creates uses the default unlimited `connections`, so
|
|
61
|
+
concurrent requests to the same origin are spread across separate {Client}
|
|
62
|
+
instances on separate sockets.
|
|
31
63
|
|
|
32
|
-
|
|
64
|
+
> [!NOTE]
|
|
65
|
+
> Because each concurrent request to an origin may use a different {Client},
|
|
66
|
+
> HTTP/2 multiplexing on a shared session does not apply unless `connections` is
|
|
67
|
+
> set to a small value (for example `connections: 1`). See {PoolOptions} and
|
|
68
|
+
> {ClientOptions} for the full set of inherited options such as `allowH2`
|
|
69
|
+
> (default `true`) and `maxConcurrentStreams` (default `100`).
|
|
33
70
|
|
|
34
|
-
|
|
71
|
+
### `agent.closed`
|
|
35
72
|
|
|
36
|
-
|
|
73
|
+
<!-- YAML
|
|
74
|
+
added: v3.2.0
|
|
75
|
+
-->
|
|
37
76
|
|
|
38
|
-
|
|
77
|
+
* Type: {boolean}
|
|
39
78
|
|
|
40
|
-
|
|
79
|
+
`true` after [`agent.close()`][] has been called.
|
|
41
80
|
|
|
42
|
-
|
|
81
|
+
### `agent.destroyed`
|
|
43
82
|
|
|
44
|
-
|
|
83
|
+
<!-- YAML
|
|
84
|
+
added: v3.2.0
|
|
85
|
+
-->
|
|
45
86
|
|
|
46
|
-
|
|
87
|
+
* Type: {boolean}
|
|
47
88
|
|
|
48
|
-
|
|
89
|
+
`true` after [`agent.destroy()`][] has been called, or after [`agent.close()`][]
|
|
90
|
+
has been called and the shutdown has completed.
|
|
49
91
|
|
|
50
|
-
|
|
92
|
+
### `agent.stats`
|
|
51
93
|
|
|
52
|
-
|
|
94
|
+
<!-- YAML
|
|
95
|
+
added: v7.9.0
|
|
96
|
+
-->
|
|
53
97
|
|
|
54
|
-
|
|
98
|
+
* Type: {Record<string, ClientStats|PoolStats>}
|
|
55
99
|
|
|
56
|
-
|
|
100
|
+
Aggregate statistics for the agent, keyed by origin. Each value is the
|
|
101
|
+
[`ClientStats`][] or [`PoolStats`][] object reported by the dispatcher currently
|
|
102
|
+
serving that origin. Origins whose dispatcher does not expose `stats` are
|
|
103
|
+
omitted.
|
|
57
104
|
|
|
58
|
-
|
|
105
|
+
```mjs
|
|
106
|
+
import { Agent } from 'undici'
|
|
59
107
|
|
|
60
|
-
|
|
108
|
+
const agent = new Agent()
|
|
109
|
+
await agent.request({ origin: 'http://localhost:3000', path: '/', method: 'GET' })
|
|
110
|
+
console.log(agent.stats)
|
|
111
|
+
// { 'http://localhost:3000': PoolStats { ... } }
|
|
112
|
+
```
|
|
61
113
|
|
|
62
|
-
|
|
114
|
+
### `agent.dispatch(options, handler)`
|
|
63
115
|
|
|
64
|
-
|
|
116
|
+
<!-- YAML
|
|
117
|
+
added: v3.2.0
|
|
118
|
+
-->
|
|
65
119
|
|
|
66
|
-
|
|
120
|
+
* `options` {AgentDispatchOptions} Extends {DispatchOptions}.
|
|
121
|
+
* `origin` {string|URL} The origin to dispatch the request against. Required.
|
|
122
|
+
* `handler` {DispatchHandler}
|
|
123
|
+
* Returns: {boolean} `false` if the dispatcher is busy and the caller should
|
|
124
|
+
wait for the [`'drain'`][] event before dispatching again.
|
|
67
125
|
|
|
68
|
-
|
|
126
|
+
Routes the request to the dispatcher for `options.origin`, creating one through
|
|
127
|
+
the `factory` if needed. Throws an {InvalidArgumentError} when `options.origin`
|
|
128
|
+
is not a non-empty string or {URL}, and a {MaxOriginsReachedError} when a new
|
|
129
|
+
origin would exceed `maxOrigins`. Implements [`Dispatcher.dispatch()`][].
|
|
69
130
|
|
|
70
|
-
|
|
131
|
+
### `agent.close([callback])`
|
|
71
132
|
|
|
72
|
-
|
|
133
|
+
<!-- YAML
|
|
134
|
+
added: v3.2.0
|
|
135
|
+
-->
|
|
73
136
|
|
|
74
|
-
|
|
137
|
+
* `callback` {Function} (optional) Invoked once every per-origin dispatcher has
|
|
138
|
+
closed. When omitted, a {Promise} is returned.
|
|
139
|
+
* Returns: {Promise|void}
|
|
75
140
|
|
|
76
|
-
|
|
141
|
+
Gracefully closes the agent and every dispatcher it owns, waiting for in-flight
|
|
142
|
+
requests to complete. Implements [`Dispatcher.close()`][].
|
|
77
143
|
|
|
78
|
-
|
|
144
|
+
### `agent.destroy([error[, callback]])`
|
|
79
145
|
|
|
80
|
-
|
|
146
|
+
<!-- YAML
|
|
147
|
+
added: v3.2.0
|
|
148
|
+
-->
|
|
81
149
|
|
|
82
|
-
|
|
150
|
+
* `error` {Error} (optional) The error to abort pending requests with.
|
|
151
|
+
* `callback` {Function} (optional) Invoked once every per-origin dispatcher has
|
|
152
|
+
been destroyed. When omitted, a {Promise} is returned.
|
|
153
|
+
* Returns: {Promise|void}
|
|
83
154
|
|
|
84
|
-
|
|
155
|
+
Forcefully destroys the agent and every dispatcher it owns, aborting all pending
|
|
156
|
+
requests. Implements [`Dispatcher.destroy()`][].
|
|
157
|
+
|
|
158
|
+
### `agent.connect(options[, callback])`
|
|
159
|
+
|
|
160
|
+
<!-- YAML
|
|
161
|
+
added: v3.2.0
|
|
162
|
+
-->
|
|
163
|
+
|
|
164
|
+
See [`Dispatcher.connect()`][]. The request is routed to the dispatcher for
|
|
165
|
+
`options.origin`.
|
|
166
|
+
|
|
167
|
+
### `agent.pipeline(options, handler)`
|
|
168
|
+
|
|
169
|
+
<!-- YAML
|
|
170
|
+
added: v3.2.0
|
|
171
|
+
-->
|
|
172
|
+
|
|
173
|
+
See [`Dispatcher.pipeline()`][]. The request is routed to the dispatcher for
|
|
174
|
+
`options.origin`.
|
|
175
|
+
|
|
176
|
+
### `agent.request(options[, callback])`
|
|
177
|
+
|
|
178
|
+
<!-- YAML
|
|
179
|
+
added: v3.2.0
|
|
180
|
+
-->
|
|
181
|
+
|
|
182
|
+
See [`Dispatcher.request()`][]. The request is routed to the dispatcher for
|
|
183
|
+
`options.origin`.
|
|
184
|
+
|
|
185
|
+
```mjs
|
|
186
|
+
import { Agent } from 'undici'
|
|
187
|
+
|
|
188
|
+
const agent = new Agent()
|
|
189
|
+
const { statusCode, body } = await agent.request({
|
|
190
|
+
origin: 'http://localhost:3000',
|
|
191
|
+
path: '/',
|
|
192
|
+
method: 'GET',
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
console.log('response received', statusCode)
|
|
196
|
+
console.log('data', await body.text())
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### `agent.stream(options, factory[, callback])`
|
|
200
|
+
|
|
201
|
+
<!-- YAML
|
|
202
|
+
added: v3.2.0
|
|
203
|
+
-->
|
|
204
|
+
|
|
205
|
+
See [`Dispatcher.stream()`][]. The request is routed to the dispatcher for
|
|
206
|
+
`options.origin`.
|
|
207
|
+
|
|
208
|
+
### `agent.upgrade(options[, callback])`
|
|
209
|
+
|
|
210
|
+
<!-- YAML
|
|
211
|
+
added: v3.2.0
|
|
212
|
+
-->
|
|
213
|
+
|
|
214
|
+
See [`Dispatcher.upgrade()`][]. The request is routed to the dispatcher for
|
|
215
|
+
`options.origin`.
|
|
216
|
+
|
|
217
|
+
### Event: `'connect'`
|
|
218
|
+
|
|
219
|
+
<!-- YAML
|
|
220
|
+
added: v6.6.0
|
|
221
|
+
-->
|
|
222
|
+
|
|
223
|
+
* `origin` {URL}
|
|
224
|
+
* `targets` {Array<Dispatcher>} The dispatchers involved, starting with this
|
|
225
|
+
`Agent` followed by the per-origin dispatcher chain.
|
|
226
|
+
|
|
227
|
+
Emitted when a socket has been created for an origin and is ready to receive
|
|
228
|
+
requests. Forwarded from the underlying dispatcher's [`'connect'`][] event.
|
|
229
|
+
|
|
230
|
+
### Event: `'disconnect'`
|
|
231
|
+
|
|
232
|
+
<!-- YAML
|
|
233
|
+
added: v6.6.0
|
|
234
|
+
-->
|
|
235
|
+
|
|
236
|
+
* `origin` {URL}
|
|
237
|
+
* `targets` {Array<Dispatcher>} The dispatchers involved, starting with this
|
|
238
|
+
`Agent`.
|
|
239
|
+
* `error` {Error}
|
|
240
|
+
|
|
241
|
+
Emitted when a socket for an origin has disconnected. Forwarded from the
|
|
242
|
+
underlying dispatcher's [`'disconnect'`][] event.
|
|
243
|
+
|
|
244
|
+
### Event: `'connectionError'`
|
|
245
|
+
|
|
246
|
+
<!-- YAML
|
|
247
|
+
added: v6.6.0
|
|
248
|
+
-->
|
|
249
|
+
|
|
250
|
+
* `origin` {URL}
|
|
251
|
+
* `targets` {Array<Dispatcher>} The dispatchers involved, starting with this
|
|
252
|
+
`Agent`.
|
|
253
|
+
* `error` {Error}
|
|
254
|
+
|
|
255
|
+
Emitted when a connection attempt for an origin fails. Forwarded from the
|
|
256
|
+
underlying dispatcher's [`'connectionError'`][] event.
|
|
257
|
+
|
|
258
|
+
### Event: `'drain'`
|
|
259
|
+
|
|
260
|
+
<!-- YAML
|
|
261
|
+
added: v6.6.0
|
|
262
|
+
-->
|
|
263
|
+
|
|
264
|
+
* `origin` {URL}
|
|
265
|
+
* `targets` {Array<Dispatcher>} The dispatchers involved, starting with this
|
|
266
|
+
`Agent`.
|
|
267
|
+
|
|
268
|
+
Emitted when an origin's dispatcher is no longer busy and can accept more
|
|
269
|
+
requests. Forwarded from the underlying dispatcher's [`'drain'`][] event.
|
|
270
|
+
|
|
271
|
+
[`'connect'`]: Dispatcher.md#event-connect
|
|
272
|
+
[`'connectionError'`]: Dispatcher.md#event-connectionerror
|
|
273
|
+
[`'disconnect'`]: Dispatcher.md#event-disconnect
|
|
274
|
+
[`'drain'`]: Dispatcher.md#event-drain
|
|
275
|
+
[`Client`]: Client.md#class-client
|
|
276
|
+
[`ClientStats`]: ClientStats.md
|
|
277
|
+
[`Dispatcher.close()`]: Dispatcher.md#dispatcherclosecallback-promise
|
|
278
|
+
[`Dispatcher.connect()`]: Dispatcher.md#dispatcherconnectoptions-callback
|
|
279
|
+
[`Dispatcher.destroy()`]: Dispatcher.md#dispatcherdestroyerror-callback-promise
|
|
280
|
+
[`Dispatcher.dispatch()`]: Dispatcher.md#dispatcherdispatchoptions-handler
|
|
281
|
+
[`Dispatcher.pipeline()`]: Dispatcher.md#dispatcherpipelineoptions-handler
|
|
282
|
+
[`Dispatcher.request()`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
283
|
+
[`Dispatcher.stream()`]: Dispatcher.md#dispatcherstreamoptions-factory-callback
|
|
284
|
+
[`Dispatcher.upgrade()`]: Dispatcher.md#dispatcherupgradeoptions-callback
|
|
285
|
+
[`Pool`]: Pool.md#class-pool
|
|
286
|
+
[`PoolStats`]: PoolStats.md
|
|
287
|
+
[`agent.close()`]: #agentclosecallback
|
|
288
|
+
[`agent.destroy()`]: #agentdestroyerror-callback
|
|
289
|
+
[`fetch`]: Fetch.md
|
|
290
|
+
[`request`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
291
|
+
[`stream`]: Dispatcher.md#dispatcherstreamoptions-factory-callback
|
|
@@ -1,99 +1,297 @@
|
|
|
1
|
-
#
|
|
1
|
+
# BalancedPool
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!--introduced_in=v4.8.0-->
|
|
4
|
+
<!--type=module-->
|
|
5
|
+
<!-- source_link=lib/dispatcher/balanced-pool.js -->
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
> Stability: 2 - Stable
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
A `BalancedPool` distributes requests across a set of {Pool} instances, each
|
|
10
|
+
connected to a different upstream. It uses a weighted round-robin algorithm:
|
|
11
|
+
every upstream starts with the same weight, and the weight is adjusted up on
|
|
12
|
+
successful connections and down on connection errors, so that healthy upstreams
|
|
13
|
+
receive a larger share of traffic.
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
Requests are not guaranteed to be dispatched in the order they are issued.
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
```mjs
|
|
18
|
+
import { BalancedPool } from 'undici'
|
|
12
19
|
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
const pool = new BalancedPool([
|
|
21
|
+
'http://localhost:3000',
|
|
22
|
+
'http://localhost:3001',
|
|
23
|
+
'http://localhost:3002',
|
|
24
|
+
])
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
const { statusCode, body } = await pool.request({
|
|
27
|
+
path: '/',
|
|
28
|
+
method: 'GET',
|
|
29
|
+
})
|
|
30
|
+
console.log('response received', statusCode)
|
|
31
|
+
for await (const chunk of body) {
|
|
32
|
+
console.log('data', chunk.toString())
|
|
33
|
+
}
|
|
34
|
+
```
|
|
17
35
|
|
|
18
|
-
|
|
36
|
+
## Class: `BalancedPool`
|
|
19
37
|
|
|
20
|
-
|
|
38
|
+
<!-- YAML
|
|
39
|
+
added: v4.8.0
|
|
40
|
+
changes:
|
|
41
|
+
- version: v4.10.4
|
|
42
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
43
|
+
description: Introduced the `BalancedPool` class.
|
|
44
|
+
-->
|
|
21
45
|
|
|
22
|
-
|
|
23
|
-
## Instance Properties
|
|
46
|
+
* Extends: {Dispatcher}
|
|
24
47
|
|
|
25
|
-
|
|
48
|
+
A pool of {Pool} instances connected to multiple upstreams.
|
|
26
49
|
|
|
27
|
-
|
|
50
|
+
### `new BalancedPool(upstreams[, options])`
|
|
28
51
|
|
|
29
|
-
|
|
52
|
+
<!-- YAML
|
|
53
|
+
added: v4.8.0
|
|
54
|
+
changes:
|
|
55
|
+
- version: v4.15.0
|
|
56
|
+
pr-url: https://github.com/nodejs/undici/pull/1237
|
|
57
|
+
description: Added the `factory` option.
|
|
58
|
+
-->
|
|
30
59
|
|
|
31
|
-
|
|
60
|
+
* `upstreams` {URL|string|URL[]|string[]} One or more upstream origins. Each
|
|
61
|
+
value should only include the **protocol, hostname, and port**. **Default:**
|
|
62
|
+
`[]`.
|
|
63
|
+
* `options` {BalancedPoolOptions} (optional)
|
|
32
64
|
|
|
33
|
-
|
|
65
|
+
The options passed to the constructor are forwarded to every {Pool} instance
|
|
66
|
+
that is created for an upstream.
|
|
34
67
|
|
|
35
|
-
|
|
68
|
+
#### Parameter: `BalancedPoolOptions`
|
|
36
69
|
|
|
37
|
-
|
|
70
|
+
Extends: {PoolOptions}
|
|
38
71
|
|
|
39
|
-
|
|
72
|
+
In addition to all {PoolOptions}, the following options are supported:
|
|
40
73
|
|
|
41
|
-
|
|
74
|
+
* `factory` {Function} A function used to create the {Pool} instance for each
|
|
75
|
+
upstream. **Default:** `(origin, opts) => new Pool(origin, opts)`.
|
|
76
|
+
* `origin` {URL|string} The upstream origin.
|
|
77
|
+
* `opts` {Object} The options object derived from the constructor options.
|
|
78
|
+
* Returns: {Dispatcher}
|
|
79
|
+
* `maxWeightPerServer` {number} The maximum weight any single upstream can
|
|
80
|
+
reach. Successful connections increase an upstream's weight up to this value.
|
|
81
|
+
**Default:** `100`.
|
|
82
|
+
* `errorPenalty` {number} The amount by which an upstream's weight is decreased
|
|
83
|
+
on a connection error and increased on a successful connection. **Default:**
|
|
84
|
+
`15`.
|
|
42
85
|
|
|
43
|
-
### `
|
|
86
|
+
### `balancedPool.addUpstream(upstream)`
|
|
44
87
|
|
|
45
|
-
|
|
88
|
+
<!-- YAML
|
|
89
|
+
added: v4.8.0
|
|
90
|
+
-->
|
|
46
91
|
|
|
47
|
-
|
|
92
|
+
* `upstream` {URL|string} The upstream origin to add. It should only include the
|
|
93
|
+
**protocol, hostname, and port**.
|
|
94
|
+
* Returns: {BalancedPool} The `BalancedPool` instance, for chaining.
|
|
48
95
|
|
|
49
|
-
|
|
96
|
+
Adds an upstream. If an open, non-destroyed upstream with the same origin is
|
|
97
|
+
already present, the call is a no-op.
|
|
50
98
|
|
|
51
|
-
### `
|
|
99
|
+
### `balancedPool.removeUpstream(upstream)`
|
|
52
100
|
|
|
53
|
-
|
|
101
|
+
<!-- YAML
|
|
102
|
+
added: v4.8.0
|
|
103
|
+
-->
|
|
54
104
|
|
|
55
|
-
|
|
105
|
+
* `upstream` {URL|string} The upstream origin to remove. It should only include
|
|
106
|
+
the **protocol, hostname, and port**.
|
|
107
|
+
* Returns: {BalancedPool} The `BalancedPool` instance, for chaining.
|
|
56
108
|
|
|
57
|
-
|
|
109
|
+
Removes an upstream that was previously added. If no matching upstream is found,
|
|
110
|
+
the call is a no-op.
|
|
58
111
|
|
|
59
|
-
### `
|
|
112
|
+
### `balancedPool.getUpstream(upstream)`
|
|
60
113
|
|
|
61
|
-
|
|
114
|
+
<!-- YAML
|
|
115
|
+
added: v7.17.0
|
|
116
|
+
-->
|
|
62
117
|
|
|
63
|
-
|
|
118
|
+
* `upstream` {URL|string} The upstream origin to look up. It should only include
|
|
119
|
+
the **protocol, hostname, and port**.
|
|
120
|
+
* Returns: {Pool|undefined} The {Pool} instance managing the given upstream, or
|
|
121
|
+
`undefined` if it is not present.
|
|
64
122
|
|
|
65
|
-
|
|
123
|
+
Returns the {Pool} instance for the given upstream origin, if it is open and not
|
|
124
|
+
destroyed.
|
|
66
125
|
|
|
67
|
-
### `
|
|
126
|
+
### `balancedPool.upstreams`
|
|
68
127
|
|
|
69
|
-
|
|
128
|
+
<!-- YAML
|
|
129
|
+
added: v4.8.0
|
|
130
|
+
-->
|
|
70
131
|
|
|
71
|
-
|
|
132
|
+
* Type: {string[]} The origins of the upstreams that are currently open and not
|
|
133
|
+
destroyed.
|
|
72
134
|
|
|
73
|
-
|
|
135
|
+
### `balancedPool.closed`
|
|
74
136
|
|
|
75
|
-
|
|
137
|
+
<!-- YAML
|
|
138
|
+
added: v4.8.0
|
|
139
|
+
changes:
|
|
140
|
+
- version: v4.10.4
|
|
141
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
142
|
+
description: Introduced the `BalancedPool` class.
|
|
143
|
+
-->
|
|
76
144
|
|
|
77
|
-
|
|
145
|
+
* Type: {boolean} `true` after `balancedPool.close()` has been called.
|
|
78
146
|
|
|
79
|
-
|
|
147
|
+
Implements [`client.closed`][].
|
|
80
148
|
|
|
81
|
-
|
|
149
|
+
### `balancedPool.destroyed`
|
|
82
150
|
|
|
83
|
-
|
|
151
|
+
<!-- YAML
|
|
152
|
+
added: v4.8.0
|
|
153
|
+
changes:
|
|
154
|
+
- version: v4.10.4
|
|
155
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
156
|
+
description: Introduced the `BalancedPool` class.
|
|
157
|
+
-->
|
|
84
158
|
|
|
85
|
-
|
|
159
|
+
* Type: {boolean} `true` after `balancedPool.destroy()` has been called, or after
|
|
160
|
+
`balancedPool.close()` has been called and the shutdown has completed.
|
|
86
161
|
|
|
87
|
-
|
|
162
|
+
Implements [`client.destroyed`][].
|
|
163
|
+
|
|
164
|
+
### `balancedPool.stats`
|
|
165
|
+
|
|
166
|
+
<!-- YAML
|
|
167
|
+
added: v4.8.0
|
|
168
|
+
-->
|
|
169
|
+
|
|
170
|
+
* Type: {PoolStats}
|
|
171
|
+
|
|
172
|
+
Returns a {PoolStats} instance aggregating the statistics of the underlying
|
|
173
|
+
pools.
|
|
174
|
+
|
|
175
|
+
### `balancedPool.close([callback])`
|
|
176
|
+
|
|
177
|
+
<!-- YAML
|
|
178
|
+
added: v4.8.0
|
|
179
|
+
-->
|
|
180
|
+
|
|
181
|
+
Implements [`Dispatcher.close([callback])`][].
|
|
182
|
+
|
|
183
|
+
### `balancedPool.destroy([error[, callback]])`
|
|
184
|
+
|
|
185
|
+
<!-- YAML
|
|
186
|
+
added: v4.8.0
|
|
187
|
+
-->
|
|
188
|
+
|
|
189
|
+
Implements [`Dispatcher.destroy([error, callback])`][].
|
|
190
|
+
|
|
191
|
+
### `balancedPool.connect(options[, callback])`
|
|
192
|
+
|
|
193
|
+
<!-- YAML
|
|
194
|
+
added: v4.8.0
|
|
195
|
+
-->
|
|
196
|
+
|
|
197
|
+
See [`Dispatcher.connect(options[, callback])`][].
|
|
198
|
+
|
|
199
|
+
### `balancedPool.dispatch(options, handlers)`
|
|
200
|
+
|
|
201
|
+
<!-- YAML
|
|
202
|
+
added: v4.8.0
|
|
203
|
+
changes:
|
|
204
|
+
- version: v4.10.4
|
|
205
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
206
|
+
description: Introduced the `BalancedPool` class.
|
|
207
|
+
-->
|
|
208
|
+
|
|
209
|
+
Implements [`Dispatcher.dispatch(options, handler)`][].
|
|
210
|
+
|
|
211
|
+
### `balancedPool.pipeline(options, handler)`
|
|
212
|
+
|
|
213
|
+
<!-- YAML
|
|
214
|
+
added: v4.8.0
|
|
215
|
+
-->
|
|
216
|
+
|
|
217
|
+
See [`Dispatcher.pipeline(options, handler)`][].
|
|
218
|
+
|
|
219
|
+
### `balancedPool.request(options[, callback])`
|
|
220
|
+
|
|
221
|
+
<!-- YAML
|
|
222
|
+
added: v4.8.0
|
|
223
|
+
-->
|
|
224
|
+
|
|
225
|
+
See [`Dispatcher.request(options[, callback])`][].
|
|
226
|
+
|
|
227
|
+
### `balancedPool.stream(options, factory[, callback])`
|
|
228
|
+
|
|
229
|
+
<!-- YAML
|
|
230
|
+
added: v4.8.0
|
|
231
|
+
-->
|
|
232
|
+
|
|
233
|
+
See [`Dispatcher.stream(options, factory[, callback])`][].
|
|
234
|
+
|
|
235
|
+
### `balancedPool.upgrade(options[, callback])`
|
|
236
|
+
|
|
237
|
+
<!-- YAML
|
|
238
|
+
added: v4.8.0
|
|
239
|
+
-->
|
|
240
|
+
|
|
241
|
+
See [`Dispatcher.upgrade(options[, callback])`][].
|
|
88
242
|
|
|
89
243
|
### Event: `'connect'`
|
|
90
244
|
|
|
91
|
-
|
|
245
|
+
<!-- YAML
|
|
246
|
+
added: v4.8.0
|
|
247
|
+
changes:
|
|
248
|
+
- version: v4.10.4
|
|
249
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
250
|
+
description: Introduced the `BalancedPool` class.
|
|
251
|
+
- version: v5.8.0
|
|
252
|
+
pr-url: https://github.com/nodejs/undici/pull/1069
|
|
253
|
+
description: Adopted weighted round-robin selection across upstreams.
|
|
254
|
+
-->
|
|
255
|
+
|
|
256
|
+
See [Dispatcher Event: `'connect'`][].
|
|
92
257
|
|
|
93
258
|
### Event: `'disconnect'`
|
|
94
259
|
|
|
95
|
-
|
|
260
|
+
<!-- YAML
|
|
261
|
+
added: v4.8.0
|
|
262
|
+
changes:
|
|
263
|
+
- version: v4.10.4
|
|
264
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
265
|
+
description: Introduced the `BalancedPool` class.
|
|
266
|
+
- version: v5.8.0
|
|
267
|
+
pr-url: https://github.com/nodejs/undici/pull/1069
|
|
268
|
+
description: Adopted weighted round-robin selection across upstreams.
|
|
269
|
+
-->
|
|
270
|
+
|
|
271
|
+
See [Dispatcher Event: `'disconnect'`][].
|
|
96
272
|
|
|
97
273
|
### Event: `'drain'`
|
|
98
274
|
|
|
99
|
-
|
|
275
|
+
<!-- YAML
|
|
276
|
+
added: v4.8.0
|
|
277
|
+
changes:
|
|
278
|
+
- version: v4.10.4
|
|
279
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
280
|
+
description: Introduced the `BalancedPool` class.
|
|
281
|
+
-->
|
|
282
|
+
|
|
283
|
+
See [Dispatcher Event: `'drain'`][].
|
|
284
|
+
|
|
285
|
+
[Dispatcher Event: `'connect'`]: Dispatcher.md#event-connect
|
|
286
|
+
[Dispatcher Event: `'disconnect'`]: Dispatcher.md#event-disconnect
|
|
287
|
+
[Dispatcher Event: `'drain'`]: Dispatcher.md#event-drain
|
|
288
|
+
[`Dispatcher.close([callback])`]: Dispatcher.md#dispatcherclosecallback-promise
|
|
289
|
+
[`Dispatcher.connect(options[, callback])`]: Dispatcher.md#dispatcherconnectoptions-callback
|
|
290
|
+
[`Dispatcher.destroy([error, callback])`]: Dispatcher.md#dispatcherdestroyerror-callback-promise
|
|
291
|
+
[`Dispatcher.dispatch(options, handler)`]: Dispatcher.md#dispatcherdispatchoptions-handler
|
|
292
|
+
[`Dispatcher.pipeline(options, handler)`]: Dispatcher.md#dispatcherpipelineoptions-handler
|
|
293
|
+
[`Dispatcher.request(options[, callback])`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
294
|
+
[`Dispatcher.stream(options, factory[, callback])`]: Dispatcher.md#dispatcherstreamoptions-factory-callback
|
|
295
|
+
[`Dispatcher.upgrade(options[, callback])`]: Dispatcher.md#dispatcherupgradeoptions-callback
|
|
296
|
+
[`client.closed`]: Client.md#clientclosed
|
|
297
|
+
[`client.destroyed`]: Client.md#clientdestroyed
|