[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-typescript-core] branch master updated: factor out Headers into interface to avoid class import issues,
Admin <=