taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 78b9f3e4d94af915c7f4480519e937fa5dacf620
parent cd5cb0fc241b0cca28b11294ed16dd4630286544
Author: Sebastian <sebasjm@gmail.com>
Date:   Mon,  6 Nov 2023 14:09:47 -0300

send api request param as file

Diffstat:
Mpackages/taler-util/src/compat.d.ts | 1+
Mpackages/taler-util/src/compat.node.ts | 5+++++
Mpackages/taler-util/src/compat.qtart.ts | 6+++++-
Mpackages/taler-wallet-cli/src/index.ts | 4+++-
4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/packages/taler-util/src/compat.d.ts b/packages/taler-util/src/compat.d.ts @@ -20,3 +20,4 @@ export function readlinePrompt(prompt: string): Promise<string>; export function pathBasename(s: string): string; export function setUnhandledRejectionHandler(h: (e: any) => void): void; export function getenv(name: string): string | undefined; +export function readFile(fileName: string): string; diff --git a/packages/taler-util/src/compat.node.ts b/packages/taler-util/src/compat.node.ts @@ -18,6 +18,7 @@ import process from "node:process"; import readline from "node:readline"; import path from "node:path"; import os from "node:os"; +import fs from "node:fs"; export function processExit(status: number): never { process.exit(status); @@ -57,3 +58,7 @@ export function setUnhandledRejectionHandler(h: (e: any) => void): void { export function getenv(name: string): string | undefined { return process.env[name]; } + +export function readFile(fileName: string): string { + return fs.readFileSync(fileName, "utf-8"); +} diff --git a/packages/taler-util/src/compat.qtart.ts b/packages/taler-util/src/compat.qtart.ts @@ -29,7 +29,7 @@ export function processArgv(): string[] { } export function readlinePrompt(prompt: string): Promise<string> { - throw new Error("not supported"); + throw new Error("realinePrompt not yet supported in qtart"); } export function pathBasename(p: string): string { @@ -51,3 +51,7 @@ export function setUnhandledRejectionHandler(h: (e: any) => void): void { export function getenv(name: string): string | undefined { return std.getenv(name); } + +export function readFile(fileName: string): string { + throw new Error("readFile not yet supported in qtart"); +} diff --git a/packages/taler-wallet-cli/src/index.ts b/packages/taler-wallet-cli/src/index.ts @@ -48,6 +48,7 @@ import { getenv, pathHomedir, processExit, + readFile, readlinePrompt, setUnhandledRejectionHandler, } from "@gnu-taler/taler-util/compat"; @@ -374,8 +375,9 @@ walletCli await withWallet(args, async (wallet) => { let requestJson; logger.info(`handling 'api' request (${args.api.operation})`); + const jsonContent = args.api.request.startsWith("@") ? readFile(args.api.request.substring(1)) : args.api.request try { - requestJson = JSON.parse(args.api.request); + requestJson = JSON.parse(jsonContent); } catch (e) { console.error("Invalid JSON"); processExit(1);