From f09a502fe7f1cb7583265c91ff95bbb4740720b0 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 12 Nov 2022 19:18:55 +0100 Subject: fix URLSearchParams and HTTP typing issue --- .../taler-wallet-webextension/src/browserHttpLib.ts | 11 ++++++++++- .../src/serviceWorkerHttpLib.ts | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'packages/taler-wallet-webextension') diff --git a/packages/taler-wallet-webextension/src/browserHttpLib.ts b/packages/taler-wallet-webextension/src/browserHttpLib.ts index d318e8201..26fa8eb11 100644 --- a/packages/taler-wallet-webextension/src/browserHttpLib.ts +++ b/packages/taler-wallet-webextension/src/browserHttpLib.ts @@ -27,6 +27,7 @@ import { import { Logger, RequestThrottler, + stringToBytes, TalerErrorCode, } from "@gnu-taler/taler-util"; @@ -70,7 +71,15 @@ export class BrowserHttpLib implements HttpRequestLibrary { } myRequest.responseType = "arraybuffer"; if (requestBody) { - myRequest.send(requestBody); + if (requestBody instanceof ArrayBuffer) { + myRequest.send(requestBody); + } else if (ArrayBuffer.isView(requestBody)) { + myRequest.send(requestBody); + } else if (typeof requestBody === "string") { + myRequest.send(requestBody); + } else { + myRequest.send(JSON.stringify(requestBody)); + } } else { myRequest.send(); } diff --git a/packages/taler-wallet-webextension/src/serviceWorkerHttpLib.ts b/packages/taler-wallet-webextension/src/serviceWorkerHttpLib.ts index b9648ced8..74c7f161d 100644 --- a/packages/taler-wallet-webextension/src/serviceWorkerHttpLib.ts +++ b/packages/taler-wallet-webextension/src/serviceWorkerHttpLib.ts @@ -55,9 +55,24 @@ export class ServiceWorkerHttpLib implements HttpRequestLibrary { ); } + let myBody: BodyInit | undefined = undefined; + if (requestBody != null) { + if (typeof requestBody === "string") { + myBody = requestBody; + } else if (requestBody instanceof ArrayBuffer) { + myBody = requestBody; + } else if (ArrayBuffer.isView(requestBody)) { + myBody = requestBody; + } else if (typeof requestBody === "object") { + myBody = JSON.stringify(myBody); + } else { + throw Error("unsupported request body type"); + } + } + const response = await fetch(requestUrl, { headers: requestHeader, - body: requestBody, + body: myBody, method: requestMethod, // timeout: options?.timeout }); -- cgit v1.2.3