aboutsummaryrefslogtreecommitdiff
path: root/packages/aml-backoffice-ui/src/settings.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-04-30 14:21:01 -0300
committerSebastian <sebasjm@gmail.com>2024-04-30 14:21:15 -0300
commit20d2861508df18da18e66c94a5a268067565121b (patch)
tree24421fb8c797d50d5ad6bc7c6ff6460f469b5e11 /packages/aml-backoffice-ui/src/settings.ts
parent84adb1e78e49057cdcee15c71ad788f56bb0fff9 (diff)
downloadwallet-core-20d2861508df18da18e66c94a5a268067565121b.tar.xz
testing aml form as json
Diffstat (limited to 'packages/aml-backoffice-ui/src/settings.ts')
-rw-r--r--packages/aml-backoffice-ui/src/settings.ts90
1 files changed, 0 insertions, 90 deletions
diff --git a/packages/aml-backoffice-ui/src/settings.ts b/packages/aml-backoffice-ui/src/settings.ts
deleted file mode 100644
index a4a693d7d..000000000
--- a/packages/aml-backoffice-ui/src/settings.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- This file is part of GNU Taler
- (C) 2022-2024 Taler Systems S.A.
-
- GNU Taler is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
- */
-
- import {
- Codec,
- buildCodecForObject,
- canonicalizeBaseUrl,
- codecForString,
- codecOptional
-} from "@gnu-taler/taler-util";
-
-export interface UiSettings {
- // Where libeufin backend is localted
- // default: window.origin without "webui/"
- backendBaseURL?: string;
- // Shows a button "create random account" in the registration form
- // Useful for testing
- // default: false
- signupEmail?: string;
-}
-
-/**
- * Global settings for the bank UI.
- */
-const defaultSettings: UiSettings = {
- backendBaseURL: buildDefaultBackendBaseURL(),
- signupEmail: undefined,
-};
-
-const codecForBankUISettings = (): Codec<UiSettings> =>
- buildCodecForObject<UiSettings>()
- .property("backendBaseURL", codecOptional(codecForString()))
- .property("signupEmail", codecOptional(codecForString()))
- .build("UiSettings");
-
-function removeUndefineField<T extends object>(obj: T): T {
- const keys = Object.keys(obj) as Array<keyof T>;
- return keys.reduce((prev, cur) => {
- if (typeof prev[cur] === "undefined") {
- delete prev[cur];
- }
- return prev;
- }, obj);
-}
-
-export function fetchSettings(listener: (s: UiSettings) => void): void {
- fetch("./settings.json")
- .then((resp) => resp.json())
- .then((json) => codecForBankUISettings().decode(json))
- .then((result) =>
- listener({
- ...defaultSettings,
- ...removeUndefineField(result),
- }),
- )
- .catch((e) => {
- console.log("failed to fetch settings", e);
- listener(defaultSettings);
- });
-}
-
-function buildDefaultBackendBaseURL(): string | undefined {
- if (typeof window !== "undefined") {
- const currentLocation = new URL(
- window.location.pathname,
- window.location.origin,
- ).href;
- /**
- * By default, bank backend serves the html content
- * from the /webui root.
- */
- return canonicalizeBaseUrl(currentLocation.replace("/webui", ""));
- }
- throw Error("No default URL");
-}
-
-