mirror of
https://github.com/oven-sh/setup-bun.git
synced 2025-02-25 03:56:07 +08:00
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||
|
|
||
|
import { AgentSettings } from "../serviceClient";
|
||
|
import {
|
||
|
BaseRequestPolicy,
|
||
|
RequestPolicy,
|
||
|
RequestPolicyFactory,
|
||
|
RequestPolicyOptionsLike,
|
||
|
} from "./requestPolicy";
|
||
|
import { HttpOperationResponse } from "../httpOperationResponse";
|
||
|
import { WebResourceLike } from "../webResource";
|
||
|
|
||
|
export function agentPolicy(agentSettings?: AgentSettings): RequestPolicyFactory {
|
||
|
return {
|
||
|
create: (nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike) => {
|
||
|
return new AgentPolicy(nextPolicy, options, agentSettings!);
|
||
|
},
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export class AgentPolicy extends BaseRequestPolicy {
|
||
|
agentSettings: AgentSettings;
|
||
|
|
||
|
constructor(
|
||
|
nextPolicy: RequestPolicy,
|
||
|
options: RequestPolicyOptionsLike,
|
||
|
agentSettings: AgentSettings
|
||
|
) {
|
||
|
super(nextPolicy, options);
|
||
|
this.agentSettings = agentSettings;
|
||
|
}
|
||
|
|
||
|
public sendRequest(request: WebResourceLike): Promise<HttpOperationResponse> {
|
||
|
if (!request.agentSettings) {
|
||
|
request.agentSettings = this.agentSettings;
|
||
|
}
|
||
|
return this._nextPolicy.sendRequest(request);
|
||
|
}
|
||
|
}
|