taler-typescript-core

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

commit 87749371dd6a8ca29d812d6f58cffa5feb6ec41c
parent 92873710f1e94a4b04a6785326f4dd27fb759237
Author: Florian Dold <florian.dold@gmail.com>
Date:   Sun,  6 Sep 2020 18:32:05 +0530

convert axios error to taler error

Diffstat:
Mpackages/taler-wallet-core/src/headless/NodeHttpLib.ts | 34+++++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/packages/taler-wallet-core/src/headless/NodeHttpLib.ts b/packages/taler-wallet-core/src/headless/NodeHttpLib.ts @@ -26,7 +26,7 @@ import { HttpResponse, } from "../util/http"; import { RequestThrottler } from "../util/RequestThrottler"; -import Axios from "axios"; +import Axios, { AxiosResponse } from "axios"; import { OperationFailedError, makeErrorDetails } from "../operations/errors"; import { TalerErrorCode } from "../TalerErrorCode"; import { URL } from "../util/url"; @@ -70,16 +70,28 @@ export class NodeHttpLib implements HttpRequestLibrary { if (typeof opt?.timeout?.d_ms === "number") { timeout = opt.timeout.d_ms; } - const resp = await Axios({ - method, - url: url, - responseType: "text", - headers: opt?.headers, - validateStatus: () => true, - transformResponse: (x) => x, - data: body, - timeout, - }); + let resp: AxiosResponse; + try { + resp = await Axios({ + method, + url: url, + responseType: "text", + headers: opt?.headers, + validateStatus: () => true, + transformResponse: (x) => x, + data: body, + timeout, + }); + } catch (e) { + throw OperationFailedError.fromCode( + TalerErrorCode.WALLET_NETWORK_ERROR, + `${e.message}`, + { + requestUrl: url, + requestMethod: method, + }, + ); + } const respText = resp.data; if (typeof respText !== "string") {