Skip to content

Commit acca423

Browse files
authored
feat: adds url replacement as a default (#1540)
1 parent ac2da8f commit acca423

File tree

8 files changed

+29
-19
lines changed

8 files changed

+29
-19
lines changed

packages/http/fetch/src/middlewares/browser/middlewareFactory.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { ParametersNameDecodingHandler } from "../parametersNameDecodingHandler"
1212
import { RetryHandler } from "../retryHandler";
1313
import { UserAgentHandler } from "../userAgentHandler";
1414
import { CompressionHandler } from "../compressionHandler";
15+
import { UrlReplaceHandler } from "../urlReplaceHandler";
1516

1617
/**
1718
*
@@ -26,6 +27,6 @@ export class MiddlewareFactory {
2627
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
2728
public static getDefaultMiddlewares(customFetch: (request: string, init: RequestInit) => Promise<Response> = (...args) => fetch(...args) as any): Middleware[] {
2829
// Browsers handles redirection automatically and do not require the redirectionHandler
29-
return [new RetryHandler(), new ParametersNameDecodingHandler(), new UserAgentHandler(), new CompressionHandler(), new HeadersInspectionHandler(), new CustomFetchHandler(customFetch)];
30+
return [new RetryHandler(), new ParametersNameDecodingHandler(), new UserAgentHandler(), new CompressionHandler(), new HeadersInspectionHandler(), new UrlReplaceHandler(), new CustomFetchHandler(customFetch)];
3031
}
3132
}

packages/http/fetch/src/middlewares/middlewareFactory.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { RedirectHandler } from "./redirectHandler";
1313
import { RetryHandler } from "./retryHandler";
1414
import { UserAgentHandler } from "./userAgentHandler";
1515
import { CompressionHandler } from "./compressionHandler";
16+
import { UrlReplaceHandler } from "./urlReplaceHandler";
1617

1718
/**
1819
*
@@ -26,6 +27,6 @@ export class MiddlewareFactory {
2627
*/
2728
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
2829
public static getDefaultMiddlewares(customFetch: (request: string, init: RequestInit) => Promise<Response> = (...args) => fetch(...args) as any): Middleware[] {
29-
return [new RetryHandler(), new RedirectHandler(), new ParametersNameDecodingHandler(), new UserAgentHandler(), new CompressionHandler(), new HeadersInspectionHandler(), new CustomFetchHandler(customFetch)];
30+
return [new RetryHandler(), new RedirectHandler(), new ParametersNameDecodingHandler(), new UserAgentHandler(), new CompressionHandler(), new HeadersInspectionHandler(), new UrlReplaceHandler(), new CustomFetchHandler(customFetch)];
3031
}
3132
}

packages/http/fetch/test/browser/httpClient.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import { assert, describe, it } from "vitest";
99

10-
import { CustomFetchHandler, HeadersInspectionHandler, HttpClient, Middleware, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UserAgentHandler } from "../../src";
10+
import { CustomFetchHandler, HeadersInspectionHandler, HttpClient, Middleware, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UrlReplaceHandler, UserAgentHandler } from "../../src";
1111
import { DummyFetchHandler } from "../common/middleware/dummyFetchHandler";
1212
import { CompressionHandler } from "../../src/middlewares/compressionHandler";
1313

@@ -42,7 +42,8 @@ describe("browser - HTTPClient.ts", () => {
4242
assert.isTrue(next?.next?.next instanceof UserAgentHandler);
4343
assert.isTrue(next?.next?.next?.next instanceof CompressionHandler);
4444
assert.isTrue(next?.next?.next?.next?.next instanceof HeadersInspectionHandler);
45-
assert.isTrue(next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
45+
assert.isTrue(next?.next?.next?.next?.next?.next instanceof UrlReplaceHandler);
46+
assert.isTrue(next?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
4647
});
4748

4849
it("Should set default middleware array with customFetchHandler if middleware parameter is undefined && customFetch is defined", () => {
@@ -58,7 +59,8 @@ describe("browser - HTTPClient.ts", () => {
5859
assert.isTrue(next?.next?.next instanceof UserAgentHandler);
5960
assert.isTrue(next?.next?.next?.next instanceof CompressionHandler);
6061
assert.isTrue(next?.next?.next?.next?.next instanceof HeadersInspectionHandler);
61-
assert.isTrue(next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
62+
assert.isTrue(next?.next?.next?.next?.next?.next instanceof UrlReplaceHandler);
63+
assert.isTrue(next?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
6264
});
6365

6466
it("Should set to default fetch handler middleware array if middleware parameter is null && customFetch is undefined", () => {
@@ -74,7 +76,7 @@ describe("browser - HTTPClient.ts", () => {
7476

7577
assert.isDefined(client["middleware"]);
7678
assert.equal(client["customFetch"], dummyCustomFetch);
77-
assert.isTrue(client["middleware"]?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
79+
assert.isTrue(client["middleware"]?.next?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
7880
});
7981
});
8082
});

packages/http/fetch/test/browser/kiotaClientFactory.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import { assert, describe, it } from "vitest";
99

10-
import { CustomFetchHandler, HeadersInspectionHandler, KiotaClientFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UserAgentHandler } from "../../src";
10+
import { CustomFetchHandler, HeadersInspectionHandler, KiotaClientFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UrlReplaceHandler, UserAgentHandler } from "../../src";
1111
import { CompressionHandler } from "../../src/middlewares/compressionHandler";
1212

1313
describe("browser - KiotaClientFactory", () => {
@@ -22,6 +22,7 @@ describe("browser - KiotaClientFactory", () => {
2222
assert.isTrue(middleware?.next?.next?.next instanceof UserAgentHandler);
2323
assert.isTrue(middleware?.next?.next?.next?.next instanceof CompressionHandler);
2424
assert.isTrue(middleware?.next?.next?.next?.next?.next instanceof HeadersInspectionHandler);
25-
assert.isTrue(middleware?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
25+
assert.isTrue(middleware?.next?.next?.next?.next?.next?.next instanceof UrlReplaceHandler);
26+
assert.isTrue(middleware?.next?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
2627
});
2728
});

packages/http/fetch/test/browser/middlewareFactory.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,20 @@
66
*/
77

88
import { assert, describe, it } from "vitest";
9-
import { CustomFetchHandler, HeadersInspectionHandler, MiddlewareFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UserAgentHandler } from "../../src";
9+
import { CustomFetchHandler, HeadersInspectionHandler, MiddlewareFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UrlReplaceHandler, UserAgentHandler } from "../../src";
1010
import { CompressionHandler } from "../../src/middlewares/compressionHandler";
1111

1212
describe("browser - MiddlewareFactory", () => {
1313
it("Should return the default pipeline", () => {
1414
const defaultMiddleWareArray = MiddlewareFactory.getDefaultMiddlewares();
15-
assert.equal(defaultMiddleWareArray.length, 7);
15+
assert.equal(defaultMiddleWareArray.length, 8);
1616
assert.isTrue(defaultMiddleWareArray[0] instanceof RetryHandler);
1717
assert.isTrue(defaultMiddleWareArray[1] instanceof RedirectHandler);
1818
assert.isTrue(defaultMiddleWareArray[2] instanceof ParametersNameDecodingHandler);
1919
assert.isTrue(defaultMiddleWareArray[3] instanceof UserAgentHandler);
2020
assert.isTrue(defaultMiddleWareArray[4] instanceof CompressionHandler);
2121
assert.isTrue(defaultMiddleWareArray[5] instanceof HeadersInspectionHandler);
22-
assert.isTrue(defaultMiddleWareArray[6] instanceof CustomFetchHandler);
22+
assert.isTrue(defaultMiddleWareArray[6] instanceof UrlReplaceHandler);
23+
assert.isTrue(defaultMiddleWareArray[7] instanceof CustomFetchHandler);
2324
});
2425
});

packages/http/fetch/test/node/MiddlewareFactory.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,21 @@
77

88
import { assert, describe, it } from "vitest";
99

10-
import { CustomFetchHandler, HeadersInspectionHandler, MiddlewareFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UserAgentHandler } from "../../src";
10+
import { CustomFetchHandler, HeadersInspectionHandler, MiddlewareFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UrlReplaceHandler, UserAgentHandler } from "../../src";
1111
import { CompressionHandler } from "../../src/middlewares/compressionHandler";
1212

1313
describe("node - MiddlewareFactory", () => {
1414
it("Should return the default pipeline", () => {
1515
const defaultMiddleWareArray = MiddlewareFactory.getDefaultMiddlewares();
16-
assert.equal(defaultMiddleWareArray.length, 7);
16+
assert.equal(defaultMiddleWareArray.length, 8);
1717

1818
assert.isTrue(defaultMiddleWareArray[0] instanceof RetryHandler);
1919
assert.isTrue(defaultMiddleWareArray[1] instanceof RedirectHandler);
2020
assert.isTrue(defaultMiddleWareArray[2] instanceof ParametersNameDecodingHandler);
2121
assert.isTrue(defaultMiddleWareArray[3] instanceof UserAgentHandler);
2222
assert.isTrue(defaultMiddleWareArray[4] instanceof CompressionHandler);
2323
assert.isTrue(defaultMiddleWareArray[5] instanceof HeadersInspectionHandler);
24-
assert.isTrue(defaultMiddleWareArray[6] instanceof CustomFetchHandler);
24+
assert.isTrue(defaultMiddleWareArray[6] instanceof UrlReplaceHandler);
25+
assert.isTrue(defaultMiddleWareArray[7] instanceof CustomFetchHandler);
2526
});
2627
});

packages/http/fetch/test/node/httpClient.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import { assert, describe, it } from "vitest";
99

10-
import { CustomFetchHandler, HeadersInspectionHandler, HttpClient, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UserAgentHandler } from "../../src";
10+
import { CustomFetchHandler, HeadersInspectionHandler, HttpClient, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UrlReplaceHandler, UserAgentHandler } from "../../src";
1111
import { DummyFetchHandler } from "../common/middleware/dummyFetchHandler";
1212
import { CompressionHandler } from "../../src/middlewares/compressionHandler";
1313

@@ -42,7 +42,8 @@ describe("node - HTTPClient.ts", () => {
4242
assert.isTrue(next?.next?.next instanceof UserAgentHandler);
4343
assert.isTrue(next?.next?.next?.next instanceof CompressionHandler);
4444
assert.isTrue(next?.next?.next?.next?.next instanceof HeadersInspectionHandler);
45-
assert.isTrue(next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
45+
assert.isTrue(next?.next?.next?.next?.next?.next instanceof UrlReplaceHandler);
46+
assert.isTrue(next?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
4647
});
4748

4849
it("Should set default middleware array with customFetchHandler if middleware parameter is undefined && customFetch is defined", () => {
@@ -59,7 +60,8 @@ describe("node - HTTPClient.ts", () => {
5960
assert.isTrue(next?.next?.next instanceof UserAgentHandler);
6061
assert.isTrue(next?.next?.next?.next instanceof CompressionHandler);
6162
assert.isTrue(next?.next?.next?.next?.next instanceof HeadersInspectionHandler);
62-
assert.isTrue(next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
63+
assert.isTrue(next?.next?.next?.next?.next?.next instanceof UrlReplaceHandler);
64+
assert.isTrue(next?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
6365
});
6466

6567
it("Should set to default fetch handler middleware array if middleware parameter is null && customFetch is undefined", () => {

packages/http/fetch/test/node/kiotaClientFactory.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77

88
import { assert, describe, it } from "vitest";
9-
import { CustomFetchHandler, HeadersInspectionHandler, KiotaClientFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UserAgentHandler } from "../../src";
9+
import { CustomFetchHandler, HeadersInspectionHandler, KiotaClientFactory, ParametersNameDecodingHandler, RedirectHandler, RetryHandler, UrlReplaceHandler, UserAgentHandler } from "../../src";
1010
import { CompressionHandler } from "../../src/middlewares/compressionHandler";
1111

1212
describe("browser - KiotaClientFactory", () => {
@@ -21,7 +21,8 @@ describe("browser - KiotaClientFactory", () => {
2121
assert.isTrue(middleware?.next?.next?.next instanceof UserAgentHandler);
2222
assert.isTrue(middleware?.next?.next?.next?.next instanceof CompressionHandler);
2323
assert.isTrue(middleware?.next?.next?.next?.next?.next instanceof HeadersInspectionHandler);
24-
assert.isTrue(middleware?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
24+
assert.isTrue(middleware?.next?.next?.next?.next?.next?.next instanceof UrlReplaceHandler);
25+
assert.isTrue(middleware?.next?.next?.next?.next?.next?.next?.next instanceof CustomFetchHandler);
2526
});
2627

2728
it("Should maintain the middleware array order", () => {

0 commit comments

Comments
 (0)