aboutsummaryrefslogtreecommitdiff
path: root/src/types.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/types.ts')
-rw-r--r--src/types.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/types.ts b/src/types.ts
index 240275975..53f98948e 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -741,6 +741,21 @@ export namespace Amounts {
export function isNonZero(a: AmountJson) {
return a.value > 0 || a.fraction > 0;
}
+
+ /**
+ * Parse an amount like 'EUR:20.5' for 20 Euros and 50 ct.
+ */
+ export function parse(s: string): AmountJson|undefined {
+ let res = s.match(/([a-zA-Z0-9_*-]+):([0-9])+([.][0-9]+)?/);
+ if (!res) {
+ return undefined;
+ }
+ return {
+ currency: res[1],
+ value: Number.parseInt(res[2]),
+ fraction: Math.round(fractionalBase * Number.parseFloat(res[3] || "0")),
+ }
+ }
}