@typespec/ts-http-runtime
Version:
Isomorphic client library for making HTTP requests in node.js and browser.
38 lines • 1.39 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.logPolicyName = void 0;
exports.logPolicy = logPolicy;
const log_js_1 = require("../log.js");
const sanitizer_js_1 = require("../util/sanitizer.js");
/**
* The programmatic identifier of the logPolicy.
*/
exports.logPolicyName = "logPolicy";
/**
* A policy that logs all requests and responses.
* @param options - Options to configure logPolicy.
*/
function logPolicy(options = {}) {
var _a;
const logger = (_a = options.logger) !== null && _a !== void 0 ? _a : log_js_1.logger.info;
const sanitizer = new sanitizer_js_1.Sanitizer({
additionalAllowedHeaderNames: options.additionalAllowedHeaderNames,
additionalAllowedQueryParameters: options.additionalAllowedQueryParameters,
});
return {
name: exports.logPolicyName,
async sendRequest(request, next) {
if (!logger.enabled) {
return next(request);
}
logger(`Request: ${sanitizer.sanitize(request)}`);
const response = await next(request);
logger(`Response status code: ${response.status}`);
logger(`Headers: ${sanitizer.sanitize(response.headers)}`);
return response;
},
};
}
//# sourceMappingURL=logPolicy.js.map