import { AgentSettings } from "../serviceClient" ; import { BaseRequestPolicy , RequestPolicy , RequestPolicyFactory , RequestPolicyOptionsLike , } from "./requestPolicy" ; import { HttpOperationResponse } from "../httpOperationResponse" ; import { WebResourceLike } from "../webResource" ; export function agentPolicy ( agentSettings ? ) { return { create : ( nextPolicy , options ) => { return new AgentPolicy ( nextPolicy , options , agentSettings ! ) ; } , } ; } export class AgentPolicy extends BaseRequestPolicy { agentSettings : AgentSettings ; constructor ( nextPolicy , options , agentSettings ) { super ( nextPolicy , options ) ; this . agentSettings = agentSettings ; } public sendRequest ( request ) { if ( ! request . agentSettings ) { request . agentSettings = this . agentSettings ; } return this . _nextPolicy . sendRequest ( request ) ; } }