Files
SnowLuma/.pnpm-store/v11/files/1e/c70304d8db9f15dc1345c5e8b010d571f019512b6f64d15b064580f7d40215def5f8bea3ac6e8e127a61becf111cab38ae90f2f496446f61737f85558de0bc
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

49 lines
1.1 KiB
Plaintext

'use strict'
const Dispatcher = require('./dispatcher')
const RetryHandler = require('../handler/retry-handler')
const { kOriginless, kUrl } = require('../core/symbols')
class RetryAgent extends Dispatcher {
#agent = null
#options = null
constructor (agent, options = {}) {
super(options)
this.#agent = agent
this.#options = options
this[kUrl] = agent[kUrl]
this[kOriginless] = agent[kOriginless]
}
dispatch (opts, handler) {
const retry = new RetryHandler({
...opts,
retryOptions: this.#options
}, {
dispatch: this.#agent.dispatch.bind(this.#agent),
handler
})
return this.#agent.dispatch(opts, retry)
}
// WebSocket and EventSource read their receive limits from the dispatcher
// they are given, so report the wrapped agent's settings rather than none.
get webSocketOptions () {
return this.#agent.webSocketOptions
}
get eventSourceOptions () {
return this.#agent.eventSourceOptions
}
close () {
return this.#agent.close()
}
destroy () {
return this.#agent.destroy()
}
}
module.exports = RetryAgent