UNPKG

1.22 kBPlain TextView Raw
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License. See License.txt in the project root for license information.
3
4import { AgentSettings } from "../serviceClient";
5import {
6 BaseRequestPolicy,
7 RequestPolicy,
8 RequestPolicyFactory,
9 RequestPolicyOptionsLike,
10} from "./requestPolicy";
11import { HttpOperationResponse } from "../httpOperationResponse";
12import { WebResourceLike } from "../webResource";
13
14export function agentPolicy(agentSettings?: AgentSettings): RequestPolicyFactory {
15 return {
16 create: (nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike) => {
17 return new AgentPolicy(nextPolicy, options, agentSettings!);
18 },
19 };
20}
21
22export class AgentPolicy extends BaseRequestPolicy {
23 agentSettings: AgentSettings;
24
25 constructor(
26 nextPolicy: RequestPolicy,
27 options: RequestPolicyOptionsLike,
28 agentSettings: AgentSettings
29 ) {
30 super(nextPolicy, options);
31 this.agentSettings = agentSettings;
32 }
33
34 public sendRequest(request: WebResourceLike): Promise<HttpOperationResponse> {
35 if (!request.agentSettings) {
36 request.agentSettings = this.agentSettings;
37 }
38 return this._nextPolicy.sendRequest(request);
39 }
40}