UNPKG

@azure/core-http-compat

Version:

Core HTTP Compatibility Library to bridge the gap between Core V1 & V2 packages.

51 lines 2.06 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import { toPipelineRequest, toWebResourceLike } from "../util.js"; import { toCompatResponse, toPipelineResponse } from "../response.js"; /** * An enum for compatibility with RequestPolicy */ export var HttpPipelineLogLevel; (function (HttpPipelineLogLevel) { HttpPipelineLogLevel[HttpPipelineLogLevel["ERROR"] = 1] = "ERROR"; HttpPipelineLogLevel[HttpPipelineLogLevel["INFO"] = 3] = "INFO"; HttpPipelineLogLevel[HttpPipelineLogLevel["OFF"] = 0] = "OFF"; HttpPipelineLogLevel[HttpPipelineLogLevel["WARNING"] = 2] = "WARNING"; })(HttpPipelineLogLevel || (HttpPipelineLogLevel = {})); const mockRequestPolicyOptions = { log(_logLevel, _message) { /* do nothing */ }, shouldLog(_logLevel) { return false; }, }; /** * The name of the RequestPolicyFactoryPolicy */ export const requestPolicyFactoryPolicyName = "RequestPolicyFactoryPolicy"; /** * A policy that wraps policies written for core-http. * @param factories - An array of `RequestPolicyFactory` objects from a core-http pipeline */ export function createRequestPolicyFactoryPolicy(factories) { const orderedFactories = factories.slice().reverse(); return { name: requestPolicyFactoryPolicyName, async sendRequest(request, next) { let httpPipeline = { async sendRequest(httpRequest) { const response = await next(toPipelineRequest(httpRequest)); return toCompatResponse(response, { createProxy: true }); }, }; for (const factory of orderedFactories) { httpPipeline = factory.create(httpPipeline, mockRequestPolicyOptions); } const webResourceLike = toWebResourceLike(request, { createProxy: true }); const response = await httpPipeline.sendRequest(webResourceLike); return toPipelineResponse(response); }, }; } //# sourceMappingURL=requestPolicyFactoryPolicy.js.map