2025-04-02 06:50:39 -04:00

39 lines
725 B
JavaScript

'use strict';
const Dispatcher = require('./dispatcher');
const RetryHandler = require('../handler/retry-handler');
class RetryAgent extends Dispatcher {
#agent = null;
#options = null;
constructor(agent, options = {}) {
super(options);
this.#agent = agent;
this.#options = options;
}
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);
}
close() {
return this.#agent.close();
}
destroy() {
return this.#agent.destroy();
}
}
module.exports = RetryAgent;