From bd34771cd72cc67d2ee4b9165846c41915cdf0e1 Mon Sep 17 00:00:00 2001 From: Brad Jones Date: Mon, 13 Dec 2021 00:07:20 -0800 Subject: [PATCH 1/4] Ability to set custom fetch function as an option on HTTP transport --- src/transports/HTTPTransport.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/transports/HTTPTransport.ts b/src/transports/HTTPTransport.ts index 3532bd3..6c4643f 100644 --- a/src/transports/HTTPTransport.ts +++ b/src/transports/HTTPTransport.ts @@ -8,17 +8,20 @@ type CredentialsOption = "omit" | "same-origin" | "include" interface HTTPTransportOptions { credentials?: CredentialsOption headers?: Record + fetch?: Function } class HTTPTransport extends Transport { public uri: string; private readonly credentials?: CredentialsOption; - private readonly headers: Headers + private readonly headers: Headers; + private readonly fetch: Function; constructor(uri: string, options?: HTTPTransportOptions) { super(); this.uri = uri; this.credentials = options && options.credentials; - this.headers = HTTPTransport.setupHeaders(options && options.headers) + this.headers = HTTPTransport.setupHeaders(options && options.headers); + this.fetch = (options && options.fetch) || fetch; } public connect(): Promise { return Promise.resolve(); @@ -29,7 +32,7 @@ class HTTPTransport extends Transport { const notifications = getNotifications(data); const batch = getBatchRequests(data); try { - const result = await fetch(this.uri, { + const result = await this.fetch(this.uri, { method: "POST", headers: this.headers, body: JSON.stringify(this.parseData(data)), From dff33818cedc8ad07b838c6b00c28e44c810d4a1 Mon Sep 17 00:00:00 2001 From: Brad Jones Date: Mon, 13 Dec 2021 00:23:03 -0800 Subject: [PATCH 2/4] Fetch type as any? --- src/transports/HTTPTransport.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transports/HTTPTransport.ts b/src/transports/HTTPTransport.ts index 6c4643f..a425aeb 100644 --- a/src/transports/HTTPTransport.ts +++ b/src/transports/HTTPTransport.ts @@ -8,7 +8,7 @@ type CredentialsOption = "omit" | "same-origin" | "include" interface HTTPTransportOptions { credentials?: CredentialsOption headers?: Record - fetch?: Function + fetch?: any } class HTTPTransport extends Transport { From 2b0769399c9adadff4a3bd5ec7eb179f5a6759d8 Mon Sep 17 00:00:00 2001 From: Brad Jones Date: Mon, 13 Dec 2021 00:25:50 -0800 Subject: [PATCH 3/4] Trying to appease the linter --- src/transports/HTTPTransport.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/transports/HTTPTransport.ts b/src/transports/HTTPTransport.ts index a425aeb..cfe2e5a 100644 --- a/src/transports/HTTPTransport.ts +++ b/src/transports/HTTPTransport.ts @@ -8,14 +8,14 @@ type CredentialsOption = "omit" | "same-origin" | "include" interface HTTPTransportOptions { credentials?: CredentialsOption headers?: Record - fetch?: any + fetch?: () => {} } class HTTPTransport extends Transport { public uri: string; private readonly credentials?: CredentialsOption; private readonly headers: Headers; - private readonly fetch: Function; + private readonly fetch: () => {}; constructor(uri: string, options?: HTTPTransportOptions) { super(); this.uri = uri; From dd8d2077e4c42af9aa686484766c4aa9d97d5fd7 Mon Sep 17 00:00:00 2001 From: Brad Jones Date: Mon, 13 Dec 2021 00:28:30 -0800 Subject: [PATCH 4/4] Falling back to any for fetch type --- src/transports/HTTPTransport.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/transports/HTTPTransport.ts b/src/transports/HTTPTransport.ts index cfe2e5a..082a01d 100644 --- a/src/transports/HTTPTransport.ts +++ b/src/transports/HTTPTransport.ts @@ -8,14 +8,14 @@ type CredentialsOption = "omit" | "same-origin" | "include" interface HTTPTransportOptions { credentials?: CredentialsOption headers?: Record - fetch?: () => {} + fetch?: any } class HTTPTransport extends Transport { public uri: string; private readonly credentials?: CredentialsOption; private readonly headers: Headers; - private readonly fetch: () => {}; + private readonly fetch: any; constructor(uri: string, options?: HTTPTransportOptions) { super(); this.uri = uri;