Add dependency on @actions/cache

This commit is contained in:
Edoardo Pirovano 2022-08-03 13:36:23 +01:00
parent 9990b406c2
commit 38c2c091e8
No known key found for this signature in database
GPG key ID: 047556B5D93FFE28
1693 changed files with 204435 additions and 23 deletions

View file

@ -0,0 +1,47 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
import { HttpOperationResponse } from "../httpOperationResponse";
import { WebResourceLike } from "../webResource";
import {
BaseRequestPolicy,
RequestPolicy,
RequestPolicyFactory,
RequestPolicyOptionsLike,
} from "./requestPolicy";
export function logPolicy(logger: any = console.log): RequestPolicyFactory {
return {
create: (nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike) => {
return new LogPolicy(nextPolicy, options, logger);
},
};
}
export class LogPolicy extends BaseRequestPolicy {
logger?: any;
constructor(
nextPolicy: RequestPolicy,
options: RequestPolicyOptionsLike,
logger: any = console.log
) {
super(nextPolicy, options);
this.logger = logger;
}
public sendRequest(request: WebResourceLike): Promise<HttpOperationResponse> {
return this._nextPolicy.sendRequest(request).then((response) => logResponse(this, response));
}
}
function logResponse(
policy: LogPolicy,
response: HttpOperationResponse
): Promise<HttpOperationResponse> {
policy.logger(`>> Request: ${JSON.stringify(response.request, undefined, 2)}`);
policy.logger(`>> Response status code: ${response.status}`);
const responseBody = response.bodyAsText;
policy.logger(`>> Body: ${responseBody}`);
return Promise.resolve(response);
}