gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-typescript-core] branch master updated: factor out Headers into i


From: Admin
Subject: [taler-typescript-core] branch master updated: factor out Headers into interface to avoid class import issues
Date: Tue, 25 Feb 2025 13:17:27 +0100

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository taler-typescript-core.

The following commit(s) were added to refs/heads/master by this push:
     new 1516e6ea1 factor out Headers into interface to avoid class import 
issues
1516e6ea1 is described below

commit 1516e6ea13de77263243e21c65a0c92b9211708e
Author: Florian Dold <florian@dold.me>
AuthorDate: Tue Feb 25 13:17:26 2025 +0100

    factor out Headers into interface to avoid class import issues
---
 .../src/paths/instance/accounts/create/index.tsx   |  4 +++-
 packages/taler-util/src/http-common.ts             | 10 ++++++--
 packages/taler-util/src/http-impl.node.ts          |  4 ++--
 packages/taler-util/src/http-impl.qtart.ts         |  4 ++--
 packages/web-util/src/utils/http-impl.browser.ts   | 27 ++++++++++++----------
 packages/web-util/src/utils/http-impl.sw.ts        | 14 ++++-------
 6 files changed, 35 insertions(+), 28 deletions(-)

diff --git 
a/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx 
b/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx
index 6c7fbaad2..97ebe707d 100644
--- 
a/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx
+++ 
b/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx
@@ -42,6 +42,7 @@ import { useSessionContext } from 
"../../../../context/session.js";
 import { Notification } from "../../../../utils/types.js";
 import { CreatePage } from "./CreatePage.js";
 import { BasicOrTokenAuth } from "@gnu-taler/taler-util";
+import type { HttpRequestLibrary, HeadersImpl } from 
"@gnu-taler/taler-util/http";
 
 export type Entity = TalerMerchantApi.AccountAddDetails;
 interface Props {
@@ -104,9 +105,10 @@ export async function testRevenueAPI(
   | OperationFail<HttpStatusCode.BadRequest>
   | TalerError
 > {
+  const httpLib: HttpRequestLibrary = new BrowserFetchHttpLib();
   const api = new TalerRevenueHttpClient(
     revenueAPI.href,
-    new BrowserFetchHttpLib(),
+    httpLib,
   );
   const auth: BasicOrTokenAuth | undefined =
     creds === undefined
diff --git a/packages/taler-util/src/http-common.ts 
b/packages/taler-util/src/http-common.ts
index 3f310e2b6..b1a1f99d6 100644
--- a/packages/taler-util/src/http-common.ts
+++ b/packages/taler-util/src/http-common.ts
@@ -16,7 +16,7 @@
  SPDX-License-Identifier: AGPL3.0-or-later
 */
 
-import type { CancellationToken } from "./CancellationToken.js";
+import { CancellationToken } from "@gnu-taler/taler-util";
 import { Codec } from "./codec.js";
 import { j2s } from "./helpers.js";
 import {
@@ -76,7 +76,13 @@ export interface HttpRequestOptions {
 /**
  * Headers, roughly modeled after the fetch API's headers object.
  */
-export class Headers {
+export interface Headers {
+  get(name: string): string | null;
+  set(name: string, value: string): void;
+  toJSON(): any;
+}
+
+export class HeadersImpl {
   private headerMap = new Map<string, string>();
 
   get(name: string): string | null {
diff --git a/packages/taler-util/src/http-impl.node.ts 
b/packages/taler-util/src/http-impl.node.ts
index 9cc78f848..a947766d6 100644
--- a/packages/taler-util/src/http-impl.node.ts
+++ b/packages/taler-util/src/http-impl.node.ts
@@ -28,7 +28,7 @@ import { TalerError } from "./errors.js";
 import { HttpLibArgs, encodeBody, getDefaultHeaders } from "./http-common.js";
 import {
   DEFAULT_REQUEST_TIMEOUT_MS,
-  Headers,
+  HeadersImpl,
   HttpRequestLibrary,
   HttpRequestOptions,
   HttpResponse,
@@ -210,7 +210,7 @@ export class HttpLibImpl implements HttpRequestLibrary {
           chunks.push(d);
         });
         res.on("end", () => {
-          const headers: Headers = new Headers();
+          const headers: HeadersImpl = new HeadersImpl();
           for (const [k, v] of Object.entries(res.headers)) {
             if (!v) {
               continue;
diff --git a/packages/taler-util/src/http-impl.qtart.ts 
b/packages/taler-util/src/http-impl.qtart.ts
index 42a7f41e2..16a8994de 100644
--- a/packages/taler-util/src/http-impl.qtart.ts
+++ b/packages/taler-util/src/http-impl.qtart.ts
@@ -23,7 +23,7 @@ import { j2s, Logger, openPromise } from 
"@gnu-taler/taler-util";
 import { TalerError } from "./errors.js";
 import { encodeBody, getDefaultHeaders, HttpLibArgs } from "./http-common.js";
 import {
-  Headers,
+  HeadersImpl,
   HttpRequestLibrary,
   HttpRequestOptions,
   HttpResponse,
@@ -186,7 +186,7 @@ export class HttpLibImpl implements HttpRequestLibrary {
       cancelCancelledHandler();
     }
 
-    const headers: Headers = new Headers();
+    const headers: HeadersImpl = new HeadersImpl();
 
     if (res.headers) {
       for (const headerStr of res.headers) {
diff --git a/packages/web-util/src/utils/http-impl.browser.ts 
b/packages/web-util/src/utils/http-impl.browser.ts
index 1e5496071..1c864fcfa 100644
--- a/packages/web-util/src/utils/http-impl.browser.ts
+++ b/packages/web-util/src/utils/http-impl.browser.ts
@@ -18,22 +18,22 @@
  * Imports.
  */
 import {
+  Duration,
   Logger,
   RequestThrottler,
-  TalerErrorCode,
   TalerError,
-  Duration,
+  TalerErrorCode,
 } from "@gnu-taler/taler-util";
 
 import {
+  DEFAULT_REQUEST_TIMEOUT_MS,
+  HeadersImpl,
+  HttpLibArgs,
   HttpRequestLibrary,
   HttpRequestOptions,
   HttpResponse,
-  Headers,
-  getDefaultHeaders,
   encodeBody,
-  DEFAULT_REQUEST_TIMEOUT_MS,
-  HttpLibArgs,
+  getDefaultHeaders,
 } from "@gnu-taler/taler-util/http";
 
 const logger = new Logger("browserHttpLib");
@@ -41,7 +41,7 @@ const logger = new Logger("browserHttpLib");
 /**
  * An implementation of the [[HttpRequestLibrary]] using the
  * browser's XMLHttpRequest.
- * 
+ *
  * @deprecated use BrowserFetchHttpLib
  */
 export class BrowserHttpLibDepreacted implements HttpRequestLibrary {
@@ -88,7 +88,9 @@ export class BrowserHttpLibDepreacted implements 
HttpRequestLibrary {
     }
 
     let myBody: ArrayBuffer | undefined =
-      requestMethod === "POST" || requestMethod === "PUT" || requestMethod === 
"PATCH"
+      requestMethod === "POST" ||
+      requestMethod === "PUT" ||
+      requestMethod === "PATCH"
         ? encodeBody(requestBody)
         : undefined;
 
@@ -96,8 +98,8 @@ export class BrowserHttpLibDepreacted implements 
HttpRequestLibrary {
     if (requestHeader) {
       Object.entries(requestHeader).forEach(([key, value]) => {
         if (value === undefined) return;
-        requestHeadersMap[key] = value
-      })
+        requestHeadersMap[key] = value;
+      });
     }
 
     return new Promise<HttpResponse>((resolve, reject) => {
@@ -129,7 +131,8 @@ export class BrowserHttpLibDepreacted implements 
HttpRequestLibrary {
               {
                 requestUrl,
                 requestMethod,
-                timeoutMs: requestTimeout.d_ms === "forever" ? 0 : 
requestTimeout.d_ms
+                timeoutMs:
+                  requestTimeout.d_ms === "forever" ? 0 : requestTimeout.d_ms,
               },
               `request to ${requestUrl} timed out`,
             ),
@@ -199,7 +202,7 @@ export class BrowserHttpLibDepreacted implements 
HttpRequestLibrary {
           const arr = headers.trim().split(/[\r\n]+/);
 
           // Create a map of header names to values
-          const headerMap: Headers = new Headers();
+          const headerMap: HeadersImpl = new HeadersImpl();
           arr.forEach(function (line) {
             const parts = line.split(": ");
             const headerName = parts.shift();
diff --git a/packages/web-util/src/utils/http-impl.sw.ts 
b/packages/web-util/src/utils/http-impl.sw.ts
index 2f7f24fd6..a758ad822 100644
--- a/packages/web-util/src/utils/http-impl.sw.ts
+++ b/packages/web-util/src/utils/http-impl.sw.ts
@@ -26,11 +26,10 @@ import {
 
 import {
   DEFAULT_REQUEST_TIMEOUT_MS,
-  Headers,
+  HeadersImpl,
   HttpLibArgs,
   HttpRequestLibrary,
   HttpRequestOptions,
-  HttpResponse,
   encodeBody,
   getDefaultHeaders,
 } from "@gnu-taler/taler-util/http";
@@ -49,10 +48,7 @@ export class BrowserFetchHttpLib implements 
HttpRequestLibrary {
     this.requireTls = args?.requireTls ?? false;
   }
 
-  async fetch(
-    requestUrl: string,
-    options?: HttpRequestOptions,
-  ): Promise<HttpResponse> {
+  async fetch(requestUrl: string, options?: HttpRequestOptions) {
     const requestMethod = options?.method ?? "GET";
     const requestBody = options?.body;
     const requestHeader = options?.headers;
@@ -105,9 +101,9 @@ export class BrowserFetchHttpLib implements 
HttpRequestLibrary {
      * auto generated
      */
     if (requestBody instanceof FormData) {
-      delete requestHeadersMap["Content-Type"]
+      delete requestHeadersMap["Content-Type"];
     } else if (requestBody instanceof URLSearchParams) {
-      requestHeadersMap["Content-Type"] = "application/x-www-form-urlencoded"
+      requestHeadersMap["Content-Type"] = "application/x-www-form-urlencoded";
     }
 
     const controller = new AbortController();
@@ -136,7 +132,7 @@ export class BrowserFetchHttpLib implements 
HttpRequestLibrary {
         clearTimeout(timeoutId);
       }
 
-      const headerMap = new Headers();
+      const headerMap = new HeadersImpl();
       response.headers.forEach((value, key) => {
         headerMap.set(key, value);
       });

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]