/** * ------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. * See License in the project root for license information. * ------------------------------------------------------------------------------------------- */ import { CustomFetchHandler } from "./customFetchHandler.js"; import { HeadersInspectionHandler } from "./headersInspectionHandler.js"; import { ParametersNameDecodingHandler } from "./parametersNameDecodingHandler.js"; import { RedirectHandler } from "./redirectHandler.js"; import { RetryHandler } from "./retryHandler.js"; import { UserAgentHandler } from "./userAgentHandler.js"; import { CompressionHandler } from "./compressionHandler.js"; import { UrlReplaceHandler } from "./urlReplaceHandler.js"; /** * * Class containing function(s) related to the middleware pipelines. */ export class MiddlewareFactory { /** * @param customFetch - The custom fetch implementation * Returns the default middleware chain an array with the middleware handlers * @returns an array of the middleware handlers of the default middleware chain */ // eslint-disable-next-line @typescript-eslint/no-unsafe-return static getDefaultMiddlewares(customFetch = (...args) => fetch(...args)) { return [new RetryHandler(), new RedirectHandler(), new ParametersNameDecodingHandler(), new UserAgentHandler(), new HeadersInspectionHandler(), new UrlReplaceHandler(), new CustomFetchHandler(customFetch)]; } /** * @param customFetch - The custom fetch implementation * Returns the default middleware chain + performance middleware * @returns an array of the middleware handlers of the default + performance middleware chain */ // eslint-disable-next-line @typescript-eslint/no-unsafe-return static getPerformanceMiddlewares(customFetch = (...args) => fetch(...args)) { const middlewares = MiddlewareFactory.getDefaultMiddlewares(customFetch); middlewares.splice(middlewares.length - 3, 0, new CompressionHandler()); // insert CompressionHandler before HeadersInspectionHandler return middlewares; } } //# sourceMappingURL=middlewareFactory.js.map