@microsoft/kiota-http-fetchlibrary
Version:
Kiota request adapter implementation with fetch
41 lines • 2.28 kB
JavaScript
/**
* -------------------------------------------------------------------------------------------
* 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