diff options
Diffstat (limited to 'packages/web-util/src/forms/converter.ts')
-rw-r--r-- | packages/web-util/src/forms/converter.ts | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/packages/web-util/src/forms/converter.ts b/packages/web-util/src/forms/converter.ts index 3a522bf7e..eee891776 100644 --- a/packages/web-util/src/forms/converter.ts +++ b/packages/web-util/src/forms/converter.ts @@ -53,6 +53,15 @@ function parseAmlState(s: string | undefined): TalerExchangeApi.AmlState { } } +const nullConverter: StringConverter<string> = { + fromStringUI(v: string | undefined): string { + return v ?? ""; + }, + toStringUI(v: unknown): string { + return v as string; + }, +}; + function amountConverter(config: any): StringConverter<AmountJson> { const currency = config["currency"]; if (!currency || typeof currency !== "string") { @@ -61,7 +70,9 @@ function amountConverter(config: any): StringConverter<AmountJson> { return { fromStringUI(v: string | undefined): AmountJson { // FIXME: requires currency - return Amounts.parse(`${currency}:${v}`) ?? Amounts.zeroOfCurrency(currency); + return ( + Amounts.parse(`${currency}:${v}`) ?? Amounts.zeroOfCurrency(currency) + ); }, toStringUI(v: unknown): string { return v === undefined ? "" : Amounts.stringifyValue(v as AmountJson); @@ -82,7 +93,7 @@ function absTimeConverter(config: any): StringConverter<AbsoluteTime> { try { const time = parse(v, pattern, new Date()); return AbsoluteTime.fromMilliseconds(time.getTime()); - } catch(e) { + } catch (e) { return AbsoluteTime.never(); } }, @@ -91,9 +102,9 @@ function absTimeConverter(config: any): StringConverter<AbsoluteTime> { const d = v as AbsoluteTime; if (d.t_ms === "never") return "never"; try { - return format(d.t_ms, pattern) + return format(d.t_ms, pattern); } catch (e) { - return "" + return ""; } }, }; @@ -115,5 +126,5 @@ export function getConverterById( // @ts-expect-error check this return amlStateConverter; } - return undefined!; + return nullConverter as StringConverter<unknown>; } |