From 5354ee6bde17c2c0e4ff0f9e9d45a3e5f861dad8 Mon Sep 17 00:00:00 2001 From: Abhinav Srivastava Date: Fri, 18 Oct 2019 08:33:21 +0530 Subject: [PATCH] Revert "Simplify building middleware chain" --- spec/core/HTTPClient.ts | 39 ------------------------- src/Client.ts | 19 ------------ src/HTTPClient.ts | 31 -------------------- src/middleware/AuthenticationHandler.ts | 9 ------ src/middleware/IMiddleware.ts | 1 - src/middleware/RedirectHandler.ts | 9 ------ src/middleware/RetryHandler.ts | 9 ------ src/middleware/TelemetryHandler.ts | 9 ------ 8 files changed, 126 deletions(-) diff --git a/spec/core/HTTPClient.ts b/spec/core/HTTPClient.ts index f4a70c5ef..8c00d9aee 100644 --- a/spec/core/HTTPClient.ts +++ b/spec/core/HTTPClient.ts @@ -7,13 +7,9 @@ import { assert } from "chai"; -import { Client } from "../../src/Client"; import { HTTPClient } from "../../src/HTTPClient"; import { Context } from "../../src/IContext"; import { FetchOptions } from "../../src/IFetchOptions"; -import { RedirectHandlerOptions } from "../../src/middleware/options/RedirectHandlerOptions"; -import { RedirectHandler } from "../../src/middleware/RedirectHandler"; -import { TelemetryHandler } from "../../src/middleware/TelemetryHandler"; import { DummyHTTPMessageHandler } from "../DummyHTTPMessageHandler"; describe("HTTPClient.ts", () => { @@ -72,39 +68,4 @@ describe("HTTPClient.ts", () => { } }); }); - - describe("getMiddlewareArray", () => { - it("Should work fine for a single middleware in the chain, which does have a getNext method", () => { - const telemetryHandler = new TelemetryHandler(); - const tempHttpClient: HTTPClient = new HTTPClient(telemetryHandler); - assert.equal(tempHttpClient.getMiddlewareArray().length, 1); - }); - - it("Should work fine for a single middleware in the chain, which doesn't have a getNext method", () => { - const tempHttpClient: HTTPClient = new HTTPClient(httpMessageHandler); - assert.equal(tempHttpClient.getMiddlewareArray().length, 1); - }); - - it("Should work fine for a chain containing many middlewares", () => { - const telemetryHandler = new TelemetryHandler(); - const redirectHandler = new RedirectHandler(new RedirectHandlerOptions()); - redirectHandler.setNext(telemetryHandler); - telemetryHandler.setNext(httpMessageHandler); - const tempHttpClient: HTTPClient = new HTTPClient(redirectHandler); - assert.equal(tempHttpClient.getMiddlewareArray().length, 3); - }); - }); - - describe("setMiddlewareArray", () => { - it("Should make a chain out of the provided array of middlewares", () => { - const telemetryHandler = new TelemetryHandler(); - const redirectHandler = new RedirectHandler(new RedirectHandlerOptions()); - redirectHandler.setNext(httpMessageHandler); - const tempHttpClient: HTTPClient = new HTTPClient(redirectHandler); - const middlewareArray = tempHttpClient.getMiddlewareArray(); - middlewareArray.splice(1, 0, telemetryHandler); - tempHttpClient.setMiddlewareArray(middlewareArray); - assert.equal(tempHttpClient.getMiddlewareArray().length, 3); - }); - }); }); diff --git a/src/Client.ts b/src/Client.ts index 610144447..0cd9b04c8 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -16,7 +16,6 @@ import { HTTPClient } from "./HTTPClient"; import { HTTPClientFactory } from "./HTTPClientFactory"; import { ClientOptions } from "./IClientOptions"; import { Options } from "./IOptions"; -import { Middleware } from "./middleware/IMiddleware"; import { validatePolyFilling } from "./ValidatePolyFilling"; export class Client { @@ -104,24 +103,6 @@ export class Client { this.httpClient = httpClient; } - /** - * @public - * function to get the array of middlewares in use right now - * @returns An array of middlewares - */ - public getMiddlewareChain() { - return this.httpClient.getMiddlewareArray(); - } - - /** - * @public - * function to set the middleware chain - * @param {Middleware[]} middlewareArray - An array of middlewares - */ - public setMiddlewareChain(middlewareArray: Middleware[]) { - return this.httpClient.setMiddlewareArray(middlewareArray); - } - /** * @public * Entry point to make requests diff --git a/src/HTTPClient.ts b/src/HTTPClient.ts index ba4c3cf0a..2276fb227 100644 --- a/src/HTTPClient.ts +++ b/src/HTTPClient.ts @@ -33,37 +33,6 @@ export class HTTPClient { this.middleware = middleware; } - /** - * @public - * To get an array of Middleware, used in middleware chain - * @returns An array of middlewares - */ - public getMiddlewareArray(): Middleware[] { - const middlewareArray: Middleware[] = []; - let currentMiddleware = this.middleware; - while (currentMiddleware) { - middlewareArray.push(currentMiddleware); - if (typeof currentMiddleware.getNext !== "undefined") { - currentMiddleware = currentMiddleware.getNext(); - } else { - break; - } - } - return middlewareArray; - } - - /** - * @public - * To set the middleware chain - * @param {Middleware[]} middlewareArray - The array containing the middlewares - */ - public setMiddlewareArray(middlewareArray: Middleware[]) { - for (let num = 0; num < middlewareArray.length - 1; num += 1) { - middlewareArray[num].setNext(middlewareArray[num + 1]); - } - this.middleware = middlewareArray[0]; - } - /** * @public * @async diff --git a/src/middleware/AuthenticationHandler.ts b/src/middleware/AuthenticationHandler.ts index 358d900f9..3275c6092 100644 --- a/src/middleware/AuthenticationHandler.ts +++ b/src/middleware/AuthenticationHandler.ts @@ -94,13 +94,4 @@ export class AuthenticationHandler implements Middleware { public setNext(next: Middleware): void { this.nextMiddleware = next; } - - /** - * @public - * To get the next middleware in the chain - * @returns next Middleware instance - */ - public getNext(): Middleware { - return this.nextMiddleware; - } } diff --git a/src/middleware/IMiddleware.ts b/src/middleware/IMiddleware.ts index 51e0821d0..70dacc703 100644 --- a/src/middleware/IMiddleware.ts +++ b/src/middleware/IMiddleware.ts @@ -15,5 +15,4 @@ import { Context } from "../IContext"; export interface Middleware { execute: (context: Context) => Promise; setNext?: (middleware: Middleware) => void; - getNext?: () => Middleware; } diff --git a/src/middleware/RedirectHandler.ts b/src/middleware/RedirectHandler.ts index 5878062e5..4bdcc9e39 100644 --- a/src/middleware/RedirectHandler.ts +++ b/src/middleware/RedirectHandler.ts @@ -243,13 +243,4 @@ export class RedirectHandler implements Middleware { public setNext(next: Middleware): void { this.nextMiddleware = next; } - - /** - * @public - * To get the next middleware in the chain - * @returns next Middleware instance - */ - public getNext(): Middleware { - return this.nextMiddleware; - } } diff --git a/src/middleware/RetryHandler.ts b/src/middleware/RetryHandler.ts index efd159a26..56b5c22c3 100644 --- a/src/middleware/RetryHandler.ts +++ b/src/middleware/RetryHandler.ts @@ -216,13 +216,4 @@ export class RetryHandler implements Middleware { public setNext(next: Middleware): void { this.nextMiddleware = next; } - - /** - * @public - * To get the next middleware in the chain - * @returns next Middleware instance - */ - public getNext(): Middleware { - return this.nextMiddleware; - } } diff --git a/src/middleware/TelemetryHandler.ts b/src/middleware/TelemetryHandler.ts index 1d1b09dec..e72d2c187 100644 --- a/src/middleware/TelemetryHandler.ts +++ b/src/middleware/TelemetryHandler.ts @@ -96,13 +96,4 @@ export class TelemetryHandler implements Middleware { public setNext(next: Middleware): void { this.nextMiddleware = next; } - - /** - * @public - * To get the next middleware in the chain - * @returns next Middleware instance - */ - public getNext(): Middleware { - return this.nextMiddleware; - } }